循环结构 - 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
?。