深入理解循环控制语句 - while

一、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循环的区别,能让我们在面对不同问题时,更加游刃有余地选择最合适的循环结构,编写出既高效又易于维护的代码。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值