在实际生活中经常会将同一件事情重复做很多次,例如在做眼保健操的第四节“轮刮眼眶”时,会重复刮眼眶的动作;打乒乓球时,会重复挥拍的动作等。在 Java 中有一种特殊的语句叫做循环语句,它可以实现将一段代码重复执行,例如循环打印 100 位学生的考试成绩。循环语句分为 while 循环语句、do…while 循环语句和 for 循环语句三种。
1.5. while 循环语句
while 循环语句和上一 节讲到的选择结构语句有些相似.都是根据条件判断来决定是否执行大括号{}内的语句、区别在于。while 语句会反复判断循环条件是否成立,只要条件成立。{}内的执行语句就会执行,直到循环条件不成立。while循环才结束。
while循环语句的语法格式如下:
while(循环条件){
执行语句
.
.
}
在上面的语法结构中,{}中的执行语句被称作循环体,循环体是否执行取决于循环条件是否成立。当循环条件为 true 时,循环体就会执行。循环体执行完毕时,程序会继续判断循环条件是否成立,如条件仍为 true 则会继续执行,直到循环条件为 false 时,整个循环过程才会结束。
while 循环的执行流程如图所示。

接下来使用 while 循环语句通过一个案例来实现打印1~4 之间的自然数.如例。
public static void main(String [] arge){
int x=1;
while (x<=4){
System.out.println("x="+x);
x++;
}
}
运行结果如下:

上例中,x 初始值为 1,在满足循环条件 x<= 4 的情况下,循环体会重复执行,打印x的值并让 x进行增,因此打印结果中 x的值分别为 1.2.3.4。值得注意的是,例程中代码 x++用于在每次循环时改变变量x的值,从而达到最终改变循环条件的目的。如果没有这行代码,整个循环会进入无限循环的状态,永远不会结束,这也就是常说的“死循环”。
1.5.2 do···while 循环语句
do···while 循环语句也被称为后测试循环语句,它和while循环语句的功能类似,语法格式如下:
do{
执行语句
.
.
.
}while(循环条件);
从上面的语法结构可以看出 ,do…while 循环语句与 while 循环语句的主要区别是:do…while 循环语句是先执行循环体,再进行循环条件判断,这与 while 循环语句的语法结构相反.并且无论循环条件是否成立.do…while循环语句中的循环体都会无条件地先执行一次,然后再根据循环条件来决定是否继续执行。
do… while 循环语句的执行流程如图 所示

接下来使用 do…while 循环语句将例 (打印1~4 之间的自然数) 进行改写.如例所示。
public static void main(String [] arge){
int x=1;
do{
System.out.println("x="+x);
x++;
}while (x<=4);
}
运行结果:

从图可以看出,上例和上上例的运行结果一致,这就说明 do…while 循环语句和 while 循环语句能实现同样的功能。
在某些特殊条件下,这两种循环语句还是有差别的。如果循环条件在循环语句开始时就不成立,那么 while 循环的循环体一次都不会执行,而 do…while 循环的循环体还是会执行一次。如果将上例和上上例中的循环条件 x<=4 都改为 x<1.那么例上会打印出x=1 的结果.而上上例什么也不会打印,即不执行循环。
1.5.3 for 循环语句
for 循环语句最常用的循环语句,一般在循环次数已知的情况下,通常情况下可以代替while循环。基本语法格式如下:
for(初始化表达式;循环条件;操作表达式){
执行语句
·
·
}
在上面的语法结构中,for关键字后面( )中包括了三部分内容:初始化表达式、循环条件和操作表达式,它们之间用英文(;)分隔,{}中的执行语句为循环体。
在for循环语句中,程序会首先执行一次初始化表达式,然后进行循环条件判断,如果循环条件结果为true,就会执行循环体,最后再执行操作表达式来控制循环条件,这样就完成了一轮for循环,直到循环条件为false时,才会跳出整个for循环。
流程如下:

接下来通过一个对自然数1~4进行求和的案例来演示for循环语句的使用,如下:
public static void main(String [] arge){
int sum=0;
for(int i=1;i<=4;i++){
sum+=i;
}
System.out.println("sum="+sum);
}
运行结果:

1.5.4 循环嵌套
语法格式:
for(初始化表达式;循环条件;操作表达式){
·
·
for(初始化表达式;循环条件;操作表达式){
执行语句
·
·
}
·
·
}
在上面的语法结构中,展示了双层 for 循环嵌套的基本格式。其中外层循环每执行一轮,都要执行完内层循环中的整个 for 循环,然后执行外层循环第二轮,接着再执行完内层循环中的整个 for 循环,依此类推,直至外层循环的循环条件不成立,才会跳出整个嵌套for循环。
可以用循环嵌套打印九九乘法表如下:
public static void main(String[] args) {
//外层循环,变量i控制输出1~9行
for(int i=1;i<=9;i++) {
//内层循环,变量j控制输出1~9列
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println("");
}
}
运行结果:

1.5.5 跳转语句
跳转语句用于实现循环语句执行过程中程序流程的跳转,在 Java 中的跳转语句有break 语句和continue 语句。
1. break语句
在 switch 条件语句和循环结构语句中都可以使用 break 语句。当它出现在 switch 条件语句中时,作用是终止某个 case 并跳出 switch 结构。当它出现在循环结构语句中时,作用是跳出当前循环结构语句,执行后面的代码。
public static void main(String[] args) {
int x=1;
while(x<=4) {
System.out.println("x="+x);
if(x==3) {
break;
}
x++;
}
}
运行结果:

循环结构中的 break 语句默认只会跳出当前所在循环,在嵌套循环结构中,如果想要在内层循环中使用 break 语句跳出外层循环,则需要预先对外层循环进行标记,然后使用break 语句跳出指定的外层循环。
2. continue 语句
continue 语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。接下来通,在一个对1~100 的奇数求和的案例来演示如例:
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++) {
if(i%2==0) {
continue;
}
sum+=i;
}
System.out.println("sum="+sum);
}
运行结果:

1552

被折叠的 条评论
为什么被折叠?



