(点击播放按钮观看视频讲解)
在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]);
© 2024. All Rights Reserved. 沪ICP备2023009024号-1