当你在电脑或手机上播放一首音乐时,你可以设置循环播放,意味着当音乐播放到结尾时又会回到开头。程序中的循环是重复一句或几句语句的方式。如果没有能让代码重复执行的循环,你的程序很快就会变得很长很长了!
关键字while
和for
均指示了循环的开始(循环声明的头部)。当循环条件为true
时,循环体会被一直重复。循环体指的是while
和for
后紧跟的一条语句或由一对{}
标示的语句块。
Java有数种不同的循环,但AP计算机科学A考试只考察以下三种:
while
:当布尔表达式为true
时重复循环体。for
:有三个可选部分的循环头部:声明/初始化,条件和变化。在循环开始前先执行声明/初始化的部分,然后当循环条件为true
时重复循环体。每次在循环体完成一轮后会执行一次变化的部分。- for-each:循环遍历整个集合(列表或数组),每次循环将变量设为集合中的下一个元素。我们会在数组的部分讨论这种循环。
以下是while
循环的一个例子,在达到0
之前一直打印输出数字。你能做些修改,让它把0
也打印了么?
public class Test { public static void main(String[] args) { int x = 3; while (x > 0) { System.out.println(x); x = x - 1; } } }
以下是for
循环的一个例子,在达到0
之前一直打印输出数字。你能做些修改,让它把0
也打印了么?
public class Test { public static void main(String[] args) { for (int x = 3; x > 0; x--) { System.out.println(x); } } }
上面两种循环哪个代码量更少一些?对于任意循环,都可以用while
或for
来写。当程序员不知道循环会执行多少次时会倾向于用while
,反之当对循环次数明确的时候会倾向于用for
。使用while
循环来执行给定次数循环的问题在于你需要记住在循环体里更新计次变量。而对于for
循环,你可以把所有重要的元素(计次变量初始值是什么,测试什么循环条件,循环变量如何改变)都放在一起。
以下这三段代码中,循环体分别是什么?
int x = 5; while (x > 0) { System.out.println(x); x = x - 1; }
for (int x = 5; x > 0; x--) System.out.println(x);
String message1 = "I "; String message2a = "love "; String message3 = "you"; String message2b = "miss "; for (int x = 1; x < 4; x++) { System.out.println(message1 + message2a + message3); System.out.println(message1 + message2b + message3); }