、
一、while循环基础
1.1 while循环的语法
while
循环的基本语法结构如下:
while(条件表达式) {
// 循环体(需要重复执行的代码)
}
代码执行流程是:
- ①判断
条件表达式
是否为真(即非零值) - ②如果条件为假,结束循环
- ③如果条件为真,执行循环体内的代码
- ④继续下一次循环,执行第①步
1.2 示例代码
下面是一个简单的例子,使用while
循环计算1到10的和:
public class WhileExample {
public static void main(String[] args) {
int sum = 0;
int i = 1; // 初始化计数器
while (i <= 10) { // 条件:i小于等于10
sum += i; // 累加i的值
i++; // 计数器递增
}
System.out.println("1到10的和为:" + sum);
}
}
这段代码中,i
初始化为1,然后进入while
循环。每次循环都会检查i
是否小于等于10,如果是,则将i
的值累加到sum
中,并将i
递增1,直到i
大于10时,循环结束。
二、while循环的变体 - do-while
do-while
循环是while
循环的一个变体,其特点是先执行循环体内的代码,然后再判断是否继续循环。其基本语法如下:
do {
// 循环体
} while(条件表达式);
与while
循环的主要区别在于,即使条件一开始就不满足,do-while
循环也会至少执行一次循环体。
示例代码
使用do-while
循环同样计算1到10的和,但这次即使初始值不正确(比如误设为11),循环也会至少执行一次:
public class DoWhileExample {
public static void main(String[] args) {
int sum = 0;
int i = 11; // 故意设置一个初始值,大于10
do {
sum += i; // 累加i的值
i++; // 计数器递增
} while(i <= 10); // 条件:i小于等于10
System.out.println("执行结果(虽然不正确):" + sum);
}
}
注意:上述do-while
示例为了演示至少执行一次的特点,故意设置了不恰当的初始值,实际上这会导致循环体不被执行,因为进入循环体后条件已经不满足。
三、while与for循环的比较
3.1 语法结构
- while:适合于当循环次数未知或条件不易直接表达为初始值、终止条件和步进时使用。
- for:结构更为紧凑,适用于循环次数已知或可以很容易地通过初始值、终止条件和步进来定义的情况。其基本语法为:
for(初始化表达式; 条件表达式; 更新表达式) {
// 循环体
}
3.2 使用场景对比
- while示例(不确定循环次数,直到满足特定条件):
int number = 7;
while(number != 42) {
// 做一些操作,可能改变number的值
}
- for示例(循环次数确定,遍历数组):
int[] numbers = {1, 2, 3, 4, 5};
for(int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
3.3 for和while如何选择
- 迭代次数确定,使用
for
循环,比如计算1~100的和,明确知道循环次数是100次。 - 迭代次数不明确,使用while循环,比如下面需求:
这个需求使用循环求解,但是循环次数不定,循环终止的条件是纸的高度大于等于珠穆朗玛峰的高度,适合用while。
四、总结
while
循环作为一种基本的循环控制结构,在Java编程中扮演着重要角色。它提供了灵活的循环机制,尤其适用于循环次数不确定或条件复杂的场景。
通过与for
循环的对比,我们可以看到两者各有优势,适用场景不同。掌握while
循环及其与for
循环的区别,能让我们在面对不同问题时,更加游刃有余地选择最合适的循环结构,编写出既高效又易于维护的代码。