Java学习——19基本结构(四)
本篇介绍do... while循环。
1、 语法格式
do{
循环体语句;
}while(布尔表达式);
注意:while(布尔表达式);后面的分号不能省,不能忘。
2、 执行流程
do…while语句是先执行循环体语句,再判断<布尔表达式>的值,如果值为true,执行下一次循环;否则,结束循环。
3、改写上篇例,计算1~10的累加和。
public class Sum {
public static void main(String args[]){
int i=1,s=0;
do{
s+=i;
i++;
}while(i<=10);
System.out.println("Thesum is "+s);
}
}
其运行结果如下:
The sum is 55
4、do..while与while语句的区别
大部分情况下,while语句都可以改写为do…while语句,但只有一种情况例外:当第一次判断<布尔表达式>的值即为false的情况。
因为while语句是先判断再执行循环,故其最少可能执行0次。如果第一次判断<布尔表达式>的值即为false,while循环体一次也不执行。
而do…while语句是先执行循环再判断,故其最少的执行次数为1。如果如果第一次判断<布尔表达式>的值即为false,do已经执行了一次循环体语句了。
例:
public class Swtich3 {
public static void while1()
{
int i=11,sum=0;
while(i<=10){
sum+=i;
}
System.out.println("The sum is "+sum);
System.out.println("After while,i= "+i);
}
public static void dowhile()
{
int i=11,sum=0;
do{
sum+=i;
i++;
}while(i<=10);
System.out.println("Thesum is "+sum);
System.out.println("Afterdo while,i= "+i);
}
public static void main(String a[]){
while1();
dowhile();
}
}
其运行结果为:
The sum is 0
After while,i=11
The sum is 11
After dowhile,i= 12
在本例中,用两个静态方法来说明while和do…while的区别。
(1)在方法while1()中用的是while循环,计算当i=11时,sum的值。因为条件为i<=11,第一次判断即为false,所以并不执行循环体;
i和sum的值并没有什么变化,故输出时sum为0,i为11.
(2) 在方法dowhile()中用的是do…while循环,计算当i=11时,sum的值。它是先do了循环体语句,执行完后sum的值为11,i的值为12。然后再判断i<=10?此时12当然是大于10的,所以结束循环。
i和sum的值在do的时候值已经发生了变化,故输出时sum为0,i为11。