JavaSE教程_基础
循环语句除了for循环之外还有while和do..while,接下来我们先来看一下while循环,首先学习while循环的语法结构,如下图所示:
图6-29:while循环语法结构
通过上图可以看出while循环的语法结构非常简单,它的执行顺序以及原理是这样的,先判断布尔表达式的结果,如果是true,则执行循环体,循环体结束之后,再次判断布尔表达式的结果,如果是true,再执行循环体,循环体结束之后,再判断布尔表达式的结果,直到结果为false的时候,while循环结束。如果起初第一次判断布尔表达式结果的时候就是false,那么while循环体执行次数就为0了。它的执行顺序以及原理也可以参见下图:
图6-30:while循环执行顺序以及原理
通过while循环的执行原理可以得出while循环的循环体执行次数可能是0次,也可能是N次。那么要想使用while循环实现一个死循环,代码应该怎么写呢?
while(true){
System.out.println("死循环");
}
运行结果就不再给大家展示了,要使用while实现一个死循环是非常简单的,让判断条件一直为true就可以了。那么使用while循环实现输出1~10应该怎么做呢?
int i = 0;
while(i < 10){
i++;
System.out.println("i = " + i);
}
运行结果如下图所示:
图6-31:使用while循环输出1~10
其实使用while循环输出1~10不止有以上这一种方式,还有其他方式,例如:
int j = 1;
while(j <= 10){
System.out.println("j = " + j);
j++;
}
运行结果如下图所示:
图6-32:使用while循环输出1~10
当然,大家还可以想想有没有其它的写法,可以自己写一写,例如:
int i = 0;
while(i < 10){
System.out.println("i = " + (++i));
}
再如:
int j = 1;
while(j <= 10){
System.out.println("j = " + j++);
}
使用while循环计算1~100所有偶数的和,应该怎么做呢?
int sum = 0;
int i = 0;
while(i <= 100){
if(i % 2 == 0){
sum += i;
}
i++;
}
System.out.println("sum = " + sum);
sum = 0;
int j = 0;
while(j <= 100){
sum += j;
j += 2;
}
System.out.println("sum = " + sum);
运行结果如下图所示:
图6-33:while循环计算1~100所有偶数和
实际上while循环可以看做是for循环的另一种变形写法,本质上是一样的,执行效率上也是一样的,硬要说它们有什么不同的话,首先while循环语法结构比for更简单,for循环的计数器比while更清楚一些,另外for循环的计数器对应的变量可以在for循环结束之后就释放掉,但是while循环的计数器对应的变量声明在while循环外面,扩大了该变量的作用域。总之,不管是for还是while,大家都必须掌握,因为这两个循环使用最多。