从C++0基础到C++入门(第十六节:while循环语句)

目录

一.  while循环语句

1.1 语法如下:

1.2 while循环的执行流程

1.3 简单的while循环示例

1.3.1 展示如何使用while循环打印数字1到5:

1.3.2 while循环的常见应用场景

二. 应用案例

2.1 案例一:用户输入验证

2.2 案例2:计算数字位数

2.3 实用技巧

无限循环及如何避免

三. while循环与for循环的比较

注意事项


 

一.  while循环语句

1.1 语法如下:

while (condition) {
    // 循环体:当condition为true时执行的代码
}

condition是一个布尔表达式每次循环开始都会检查其值。只要condition为true,循环体就会继续执行;一旦condition变为false,循环终止

1.2 while循环的执行流程

  1. 判断condition的真值
  2. 如果condition为true执行循环体中的代码。
  3. 循环体执行完毕后,再次评估condition的值。
  4. 重复上述步骤,直到condition为false为止。

【注】如果在第一次评估时condition就是false,循环体将一次也不执行

1.3 简单的while循环示例

1.3.1 展示如何使用while循环打印数字1到5:

#include <iostream>
using namespace std;

int main() {
    int i = 1;
    while (i <= 5) {
        cout << i << " ";
        i++;
    }
    return 0;
}

输出结果为:

1 2 3 4 5

1.3.2 while循环的常见应用场景

while循环特别适合处理以下情况

  • 不确定循环次数的任务
  • 需要根据用户输入决定循环是否继续的情况
  • 读取文件或网络数据直到结束
  • 实现游戏循环或事件循环

二. 应用案例

2.1 案例一:用户输入验证

以下代码展示了如何使用while循环来确保用户输入有效的数字:

#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "请输入一个1到100之间的数字: ";
    cin >> number;
    
    while (number < 1 || number > 100) {
        cout << "输入无效,请重新输入: ";
        cin >> number;
    }
    
    cout << "你输入的有效数字是: " << number << endl;
    return 0;
}

2.2 案例2:计算数字位数

这个例子展示如何使用while循环计算一个整数的位数:

#include <iostream>
using namespace std;

int main() {
    int num, count = 0;
    cout << "请输入一个整数: ";
    cin >> num;
    
    // 处理0的特殊情况
    if (num == 0) {
        count = 1;
    } else {
        // 处理负数
        if (num < 0) num = -num;
        
        while (num > 0) {
            num /= 10;
            count++;
        }
    }
    
    cout << "这个数字有 " << count << " 位" << endl;
    return 0;
}

2.3 实用技巧

无限循环及如何避免

如果while循环的condition始终为true,会导致无限循环。例如:

while (true) {
    // 无限循环
}

要避免无限循环,确保:

  1. 循环条件最终会变为false
  2. 在循环体内有修改条件变量的语句
  3. 可以使用break语句在特定条件下退出循环

三. while循环与for循环的比较

3.1 while循环和for循环可以互相转换,但各有适用场景:

  • while循环更适合条件不确定的情况
  • for循环更适合已知迭代次数的情况

例如,前面的数字打印例子可以用for循环重写:

for (int i = 1; i <= 5; i++) {
    cout << i << " ";
}

注意事项

  1. 确保循环条件最终会变为false,否则会导致无限循环
  2. 注意循环变量的初始化位置
  3. 循环体内应有改变循环条件的语句
  4. 对于复杂的条件,可以使用括号明确优先级
  5. 可以使用break和continue控制循环流程,但要谨慎使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值