问题描述:
分析下面的代码和结果回答下面的问题。在C++中,while无限循环的2层嵌套的定义是什么呢?while无限循环的2层嵌套的语法结构是什么?while无限循环的2层嵌套的关键是什么呢?第一步、找准哪个是外部循环,哪个是内部循环。第二步、找准外部循环的判断条件和循环因子。第三步、找准内部循环的判断条件和循环因子。第四步、设置好计时器,也就是计数变量,计数变量要注意是放在循环外面还是循环里面,一般都是放在循环外面。
代码:
// Created by 黑马程序员.
#include "iostream"
using namespace std;
/**
* 细节点:
* 1. 外层循环完成5天的减肥
* 2. 内层循环进行:三次俯卧撑(三次完成减少1斤体重)、三次400米冲刺(三次完成减少1斤体重)
* 3. 过程中要累计其体重减少
*/
int main()
{
cout << "有点胖需要减掉10斤体重,计划5天,每天目标2斤体重。加油!" << endl;
int sum = 0; // 体重累加变量
// 外层循环完成5天的减肥
int day = 1; // 减肥日的周期,从第一天开始。外层循环的控制因子
while (day < 6) // 控制减肥5天
{
cout << "今天是减肥的第" << day << "天" << endl;
// 俯卧撑的三次控制
int sport1 = 1; // 俯卧撑控制因子
while (sport1 < 4)
{
cout << "开始做减肥第" << day << "天的第" << sport1 << "个俯卧撑! ";
sport1++; // 俯卧撑控制因子的更新
}
sum += 1; // 体重减少的累加1
cout << endl;
cout << "减肥第" << day << "天的3个俯卧撑做完,体重减少1斤,累计减少" << sum << "斤!" << endl;
// 400米冲刺的三次控制
int sport2 = 1; // 400米冲刺控制因子
while (sport2 < 4)
{
cout << "开始做减肥第" << day << "天的第" << sport2 << "批次的400米冲刺! ";
sport2++; // 400米冲刺控制因子的更新
}
sum+=1; // 体重减少累加1
cout << endl;
cout << "减肥第" << day << "天的3个400米冲刺做完,体重减少1斤,累计减少" << sum << "斤!" << endl;
day++; // 循环控制因子的更新,每一天完事,day+1
cout << endl;
}
cout << "5天的减肥完成,累计减少:" << sum << "斤体重!" << endl;
return 0;
}
结果:
D:\CLion_code\cmake-build-debug\CLion_code.exe
有点胖需要减掉10斤体重,计划5天,每天目标2斤体重。加油!
今天是减肥的第1天
开始做减肥第1天的第1个俯卧撑! 开始做减肥第1天的第2个俯卧撑! 开始做减肥第1天的第3个俯卧撑!
减肥第1天的3个俯卧撑做完,体重减少1斤,累计减少1斤!
开始做减肥第1天的第1批次的400米冲刺! 开始做减肥第1天的第2批次的400米冲刺! 开始做减肥第1天的第3批次的400米冲刺!
减肥第1天的3个400米冲刺做完,体重减少1斤,累计减少2斤!
今天是减肥的第2天
开始做减肥第2天的第1个俯卧撑! 开始做减肥第2天的第2个俯卧撑! 开始做减肥第2天的第3个俯卧撑!
减肥第2天的3个俯卧撑做完,体重减少1斤,累计减少3斤!
开始做减肥第2天的第1批次的400米冲刺! 开始做减肥第2天的第2批次的400米冲刺! 开始做减肥第2天的第3批次的400米冲刺!
减肥第2天的3个400米冲刺做完,体重减少1斤,累计减少4斤!
今天是减肥的第3天
开始做减肥第3天的第1个俯卧撑! 开始做减肥第3天的第2个俯卧撑! 开始做减肥第3天的第3个俯卧撑!
减肥第3天的3个俯卧撑做完,体重减少1斤,累计减少5斤!
开始做减肥第3天的第1批次的400米冲刺! 开始做减肥第3天的第2批次的400米冲刺! 开始做减肥第3天的第3批次的400米冲刺!
减肥第3天的3个400米冲刺做完,体重减少1斤,累计减少6斤!
今天是减肥的第4天
开始做减肥第4天的第1个俯卧撑! 开始做减肥第4天的第2个俯卧撑! 开始做减肥第4天的第3个俯卧撑!
减肥第4天的3个俯卧撑做完,体重减少1斤,累计减少7斤!
开始做减肥第4天的第1批次的400米冲刺! 开始做减肥第4天的第2批次的400米冲刺! 开始做减肥第4天的第3批次的400米冲刺!
减肥第4天的3个400米冲刺做完,体重减少1斤,累计减少8斤!
今天是减肥的第5天
开始做减肥第5天的第1个俯卧撑! 开始做减肥第5天的第2个俯卧撑! 开始做减肥第5天的第3个俯卧撑!
减肥第5天的3个俯卧撑做完,体重减少1斤,累计减少9斤!
开始做减肥第5天的第1批次的400米冲刺! 开始做减肥第5天的第2批次的400米冲刺! 开始做减肥第5天的第3批次的400米冲刺!
减肥第5天的3个400米冲刺做完,体重减少1斤,累计减少10斤!
5天的减肥完成,累计减少:10斤体重!
Process finished with exit code 0
问题解答:
1. while
无限循环的 2 层嵌套的定义
while
无限循环的 2 层嵌套是指一个 while
循环内部再嵌套另一个 while
循环。外层循环控制整体流程,内层循环控制具体的重复操作。两层循环互相配合,实现复杂的循环任务。
2. while
无限循环的 2 层嵌套的语法结构
while (外层循环条件) {
// 外层循环体
while (内层循环条件) {
// 内层循环体
}
// 外层循环控制因子的更新
}
3. while
无限循环的 2 层嵌套的关键
- 确定外层和内层循环: 确定哪个循环控制整体流程(外层),哪个循环处理具体重复的操作(内层)。
- 设定合适的循环条件: 选择合适的条件控制循环的终止,避免死循环。
- 正确更新循环因子: 确保每次循环后,控制变量(因子)得到正确的更新。
4. 分析代码
在给定的代码中,外层循环和内层循环的结构如下:
-
外层循环(外部循环):
- 循环任务: 控制减肥的天数,总共5天。
- 判断条件:
while (day < 6)
,即当day
小于 6 时继续循环。 - 循环因子:
day
,每次循环结束后day++
。
-
内层循环(内部循环):
- 俯卧撑循环:
- 任务: 每天进行3次俯卧撑。
- 判断条件:
while (sport1 < 4)
,即当sport1
小于 4 时继续循环。 - 循环因子:
sport1
,每次循环结束后sport1++
。
- 400米冲刺循环:
- 任务: 每天进行3次400米冲刺。
- 判断条件:
while (sport2 < 4)
,即当sport2
小于 4 时继续循环。 - 循环因子:
sport2
,每次循环结束后sport2++
。
- 俯卧撑循环:
5. 设置计数变量
sum
是体重减少的累加变量,用于记录总共减少的体重。在外层循环外初始化,并在每次完成3次俯卧撑或3次400米冲刺后更新。
6. 总结
在 while
无限循环的 2 层嵌套中,外层循环控制整体进程,内层循环执行具体操作。关键在于明确循环层次、条件及计数变量的设置与更新。