(點擊播放按鈕觀看視頻講解)
在AP CS A Exam中,會考察6種控制語句(control statements),如下所示:
下面我們就分別來說一說這6種控制語句。
1. if
第一種要介紹的選擇語句是單分支 if 語句。所謂的單分支if語句是指當且僅當條件為true時執行的一個動作,具體的語法如下:
if (布爾表達式)
{
語句(組);
}
在上述語句中,當布爾表達式的結果為true時,才會執行大括號({})中的語句(組);當布爾表達式的結果為false時,就會跳過大括號({})中的語句(組)。我們可以使用流程圖來描述if語句:
比如:
int apScore = 5;
if (apScore == 5)
{
System.out.println("Extremely well qualified");
}
顯示結果就是:
Extremely well qualified
如果if后面的只有一句命令需要執行,那么大括號可以省略,比如上面的這段代碼就可以將{}省略。但是,考生們在平時練習或者考試中,還是應該加上括號,這樣會使得語句更加清晰,也不容易出錯。
2. if/else
在使用單分支if語句時,指定條件為true時單分支if語句執行一個操作;而當條件為false時什么也不做。如果我們想在條件為false時也可以執行一些別的操作,那么我們可以選擇使用雙分支if語句(if-else)。雙分支if語句的語法如下:
if (布爾表達式)
{
布爾表達式為真時執行的語句(組);
}
else
{
布爾表達式為假時執行的語句(組);
}
流程圖如下:
比如:
int apScore = 2;
if (apScore >=3)
{
System.out.println("Qualified");
}
else
{
System.out.println("Not Qualified");
}
顯示結果就是:
Not Qualified
當存在多于2種情況的條件發生時,我們可以使用多分支if/else語句,比如:
if (score >= 90)
System.out.println("A");
else if (score >= 80)
System.out.println("B");
else if (score >= 70)
System.out.println("C");
else if (score >= 60)
System.out.println("D");
else
System.out.println("F");
上述代碼就是給不同分數進行成績分類。當score>=90時,成績為A;當score<90 && score>=80時,成績為B;當score<80 && score >=70時,成績為C;當score<70 && score >=60時,成績為D;當score<60時,成績為F。
當然,我們也可以使用嵌套的if語句來處理選擇語句。所謂的嵌套if語句,就是在一個if語句中還存在另外一個if語句,比如:
if (score >= 70)
{
if (score >= 85)
System.out.println("Well Qualified");
else
System.out.println("Qualified");
}
else
System.out.println("Not Qualified");
上述代碼中,在if語句中又出現了另外一個if語句,這就是嵌套的if語句。
3. while
while是一種循環控制語句。所謂的循環,就是用于讓一個程序重復地執行語句。比如,我們想要打印字符串“SAT小幫手”100次,如果將System.out.println(“SAT小幫手”);書寫100遍是很費時間的。這個時候我們就可以使用循環語句。while循環語句的語法如下:
while (循環繼續條件)
{
// 循環體
語句(組);
}
我們給出流程圖如下:
使用如下語句我們就可以將“SAT小幫手”打印輸出100遍:
int count = 0;
while (count < 100)
{
System.out.println("SAT小幫手");
count++;
}
4. for
for循環語句也是非常常用的一種循環控制語句。一般情況下,for循環會使用一個變量來控制循環體的執行次數,以及循環什么時候終止。這個變量我們叫做循環控制變量(loop control variable)。for 循環的語法規則如下:
for (初始操作;循環繼續條件;每次執行完循環體后的操作)
{
//循環體
語句(組);
}
for循環的流程圖如下:
注意,for循環中的循環控制變量可以在初始操作中進行聲明,也可以在for循環之前進行聲明。但是,如果循環控制變量只在循環內使用,不會在循環之外用到,那么最好還是在循環的初始操作中聲明控制變量比較好。
比如:
int i;
for (i=0; i<100; i++)
{
System.out.println("SAT小幫手");
}
就是在for循環之前聲明了變量i。
5. for-each
除了上述兩種循環語句,在AP CS A Exam中,還會出現另外一種循環,即for-each循環。for-each循環經常被用來遍歷一個數組或ArrayList,并且在遍歷的過程中不需要用到索引(index)。for-each循環的語法如下:
for (elementType element: list)
{
// process the element
}
上述語法可以讀作:“對于list中的每個elementType類型的元素element,進行如下操作。”
比如:
int[] list = {2, 3, 5, 7};
for (int integer: list)
{
System.out.println(integer);
}
顯示結果就是
2
3
5
7
注意,如下所示,在使用for-each循環的時候,我們沒有辦法通過給integer 賦值來改變數組 list 中的元素:
int[] list = {2, 3, 5, 7};
for (int integer: list)
{
integer = 10;
}
在執行完上述代碼之后,list中的四個元素依然還是{2, 3, 5, 7}。
所以,當我們需要使用其他順序遍歷數組(或者ArrayList),或者需要改變數組(或者ArrayList)中的元素的時候,要謹慎使用for-each循環來進行操作。
6. return
一般來說,返回(return)語句會被用在有返回值的方法中(method)。一旦return語句被執行,該方法的調用就此結束,不管后面還有沒有其他的代碼,比如:
public static String test(int score)
{
if (score >= 80)
{
return "Qualified";
}
return "Not Qualified";
}
在調用上述方法時,如果我們傳入的參數score >= 80時,就會返回字符串“Qualified”,并結束調用。盡管這個方法中有兩個return語句,但是只有當 score < 80時,第二個return語句才會被執行。
最后留給大家一個小問題:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
for(int[] element : arr)
{
element = new int[3];
}
System.out.println(arr[0][0]);

? 2025. All Rights Reserved. 滬ICP備2023009024號-1