Java教程
Java标识符与关键字
Java变量
Java数据类型
Java运算符
Java控制语句
Java方法
Java面向对象
Java对象的创建和使用
Java封装
Java中static和this
Java继承
Java方法覆盖和多态
Java super
Java基础练习题

Java while循环语句

循环语句除了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,大家都必须掌握,因为这两个循环使用最多。