循环结构 - while循环

通常我们需要处理同一类事务,一般的编程语言都提供了循环结构逐个处理类似事务。

while循环判断一个条件是否是“true”,如果是,就继续循环,如果不是就退出循环。

一个典型的while循环结构为

    while(判断的条件) {
        循环体;
    }

上面的代码可以直接翻译成自然语言:

  • While 判断的条件的,就执行循环体的代码。

例1. 第一个完整的while循环的例子

连续打印 1 到 11内 的整数

WhileLoop.java

public class WhileLoop {

	public static void main(String[] args) {
		
		int number = 1;

		while (number <= 11) {
			System.out.println(number);
			number++; // 这句话非常重要:在完成想做的事情后,需要增加number的值,不然会陷入死循环
		}

	}
}

当然,我们可以让上面的例子变得有趣,比如:

打印1到11内的可以被3整除的数

那么我们需要在while循环体里判断,number是不是可以被3整除。

public class WhileLoop {

	public static void main(String[] args) {

		int number = 1;

		while (number <= 11) {
			if (number % 3 == 0) {
				System.out.println(number);
			}
			number++; // 这句话为什么放在if外?
		}

	}
}

例2. 前多少个正整数的和会超过10呢?

SumWithWhile.java

public class SumWithWhile {

	public static void main(String[] args) {

		int number = 1; // 用来表示连续的正整数
		int sum = 0; // 用来记录前n个正整数的和
		
		while(sum <= 10) {
			sum += number;  //将当前整数加到sum里
			number++; 	// 当前整数+1
		}
		System.out.printf("The sum of the first %d numbers is greater than 10", number-1);
	}

}

Tips.

  • 在程序设计时,我们一定要保证:随着循环迭代的进行,while循环是会终止的!(while中的判断条件是会变成false的),否则将会进入死循环
  • while循环一般用在无法预先判断需要循环的次数的场景;
  • 在跳出while循环后,要认真分析各个变量的值,比如以上例子中的number(为什么打印的时候是number - 1?。