C++019( do...while循环)

2、 do…while循环

do…while循环语句的一般形式如下:

do
    语句块
while(表达式);
  1. 其中,do为关键字,必须与while配对使用;
  2. do与while之间的语句为循环体,同样用大括号括起来;
  3. “表达式”同样是关系表达式或逻辑表达式,表示循环条件,值是一个逻辑真值或假值。

do…while循环与while循环的不同之处在于:

  • 它会先执行语句块,再判断表达式是否为真。
  • 如果为真,则继续循环;
  • 如果为假,则终止循环。
  • 因此,do…while循环至少要执行一次语句块。

do…while循环语句的流程图如图所示。值得注意的是,do…while循环后要有分号“;”。

在这里插入图片描述
在这里插入图片描述

练习1

计算1~10的累加和(do…while版)。

本实例中,将使用do…while循环语句求解1~10的累加和。do…while循环和while循环实现累加的循环体语句相同,只是执行循环体的先后顺序不同。本

### 关于C++ `do...while` 循环练习题 在《信息学奥赛一本通》中,虽然未明确提及专门针对 `do...while` 的章节[^2],但在第四章“循环结构的程序设计”的第二节中有涉及 `while` 和 `do...while` 的相关内容。以下是基于该书籍框架以及实际编程需求整理的一些适合初学者的 `do...while` 练习题。 #### 示例题目 1:累加求和 编写一个程序,让用户输入若干整数并计算它们的总和。当用户输入负数时停止接收新数据,并输出当前已有的正整数之和。 ```cpp #include <iostream> using namespace std; int main() { int num, sum = 0; do { cout << "请输入一个整数(输入负数结束): "; cin >> num; if (num >= 0) { sum += num; } } while (num >= 0); cout << "正整数的总和为:" << sum << endl; return 0; } ``` --- #### 示例题目 2:猜数字游戏 随机生成一个介于 1 到 100 的整数,让玩家不断猜测直到正确为止。每次猜测后提示玩家所猜数字是偏大还是偏小。 ```cpp #include <iostream> #include <cstdlib> // rand(), srand() #include <ctime> // time() using namespace std; int main() { srand(time(0)); int secretNumber = rand() % 100 + 1; // 随机生成1到100之间的整数 int guess; cout << "我已经想好了一个1到100之间的整数。\n"; do { cout << "请你猜一下这个数字是多少?"; cin >> guess; if (guess > secretNumber) { cout << "太大了!\n"; } else if (guess < secretNumber) { cout << "太小了!\n"; } else { cout << "恭喜你,猜对了!\n"; } } while (guess != secretNumber); return 0; } ``` --- #### 示例题目 3:验证密码 模拟登录系统的场景,要求用户连续三次尝试输入正确的密码才能成功进入系统。如果超过三次失败,则退出程序。 ```cpp #include <iostream> using namespace std; int main() { string password = "secret"; // 正确密码 string input; int attempts = 0; do { cout << "请输入密码:"; cin >> input; ++attempts; if (input != password && attempts < 3) { cout << "密码错误,请重试。(还剩" << 3 - attempts << "次机会)\n"; } } while (input != password && attempts < 3); if (input == password) { cout << "欢迎登录系统!\n"; } else { cout << "多次尝试失败,系统已锁定。\n"; } return 0; } ``` --- ### 总结 以上三个例子涵盖了常见的应用场景,包括累加器模式、交互式反馈机制以及有限次数内的重复操作。这些都适合作为基础训练来熟悉 `do...while` 结构的特点及其与其他控制流的区别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

有点。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值