文章目录
常用循环类型
1.循环
1.1循环解决的问题
代码中存在重复使用的代码内容,如果找基本的 cv 大法方式解决,会导致一下问题
1.代码冗余
2.代码阅读性极差
3.代码的可维护性极差
1.2 C/C++常用的循环结构
while 循环,do - while 循环,【for 循环】
1.2.1 while 循环结构
//格式
while (/*循环条件判断 要求为 bool 类型 true(1) or false (0)*/)
{
//循环体
//循环条件修改,变更
}
/*
执行流程
程序执行到 while 循环结构,首先判断 while 之后小括号中的数据内容是否为 true ,如果为 true 执行大括号中循环体内容,直到 while 之后小括号中的条件判断为 false 终止循环
*/
C++
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
//count 计数,初始化数据为 10,限制循环次数在 10 次
int count = 10;
//小括号中是 while 循环条件判断
while (count > 0)
{
//循环体内容
cout << "文化路任塞北街交叉口向东 150 米路南刘羊记" << endl;
//当前情况下 count-- or --count 单独成行的情况下,对于代码
//结果一致,都是在修改 count 存储的数据内容情况,单独成行
//自增自减运算符也不存在歧义问题
// count--; // --count;
count -= 1;
}
return 0;
}
C语言
#include <stdio.h>
int main (int argc ,char * argv[])
{
int count = 10;
while(count > 0)
{
printf("打起精神!\n");
count -= 1;
}
return 0;
}
1.2 do while 循环结构
//格式
do
{
//循环体内容
//循环条件修改,变更
}while(/*循环条件判断 要求为 bool 类型 true(1) or false(0) */);
/*
执行流程:
程序运行到 do while 循环体结构,首先执行一次循环体内容,之后在哦按段 while 之后小括号中的条件判断是否为 true, 如果为 true 继续执行循环体内容,如果为 false,终止循环
*/
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
//count 变量控制循环次数
int count = 10;
do
{
cout << "东北饺子精品菜!" << endl;
count -= 1;
} while (count > 0);
return 0;
}
1.2.3 for 循环结构
/* 格式 */
for (/* 循环条件初始化 */; /* 循环条件判断 */; /* 循环条件修改*/;)
{
//循环体
}
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
//for(/*循环条件初始化*/; /*循环条件判断*/;/*循环条件修改*/;)
for (int i = 0; i < 10; i++)
{
cout << "老院子-红烧肉,烤鸭" << endl;
}
return 0;
}
1.3 循环操作关键字
1.3.1 break 终止循环【常用】
break 关键字有两个作用
- 在循环结构中,跳出当前循环/跳出一层循环结构
- 在 switch - case 结构中,跳出 switch -case
通常情况下都是在 if 判断条件的约束下,break 操作跳出对应结构
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
//打印数据, 从0 开始到 10 结束,如果中间遇见 6 跳出循环
for (int i = 0; i < 10; i++)
{
//涉及到 == 等值判断,需要常量在前,变量在后
if (6 == i)
{
cout << "循环终止!" << endl;
break;
}
cout << "i = " << i << endl;
}
return 0;
}
1.3.2 continue 结束本次循环,进入下一次循环
continue 使用建议(结束当前循环内容,直接进入下一次循环周期)
- 仅推荐在 for 循环中使用, 不会出现无限循环
- 不推荐在 while 和 do while 循环中使用,避免出现无限循环的情况
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
//案例: 循环展示数据,从 1 开始到 10 结束,如果遇到 3 的倍数跳过
for (int i = 1; i < 10; i++)
{
//取余 3 为 0 ,就是 3 的倍数
if (i % 3 == 0)
{
cout << "跳过三的倍数" << endl;
//结束本次循环,直接进入下一次循环
continue;
}
cout << "i = " << i << endl;
}
return 0;
}
1.4 循环嵌套案例
while (true){} 常用的无限循环结构,通常是用来解决次数不确定,但是有明确的循环终止条件,可以采用 while(true) + break 关键字操作限制循环内容。
【完成一个循环点菜操作】
#include <iostream>
using namespace std;
/*
点菜功能实现
1.可以展示菜品
2.可以循环点菜
3.用户选择下单,终止点菜操作
4.计算用户的总消费金额
*/
int main(int argc, char const *argv[])
{
// 准备必要的变量
int choose = 0;
// 总价格记录变量
int total_price = 0;
// 【退出标记变量】
bool flag = false;
while (true)
{
cout << "1. 烤鱼 80 RMB" << endl;
cout << "2. 烤全羊 2188 RMB" << endl;
cout << "3. 烤羊排 168 RMB" << endl;
cout << "4. 烤大蒜 2 RMB" << endl;
cout << "5. 老雪 8 RMB" << endl;
cout << "6. 罗斯福10号 19 RMB" << endl;
cout << "7. 下单!" << endl;
cout << "请输入您需要的菜品:";
cin >> choose;
switch (choose)
{
case 1:
total_price += 80;
cout << "烤鱼一份目前消费金额:" << total_price << endl;
break;
case 2:
total_price += 2188;
cout << "烤全羊一份,目前消费金额: " << total_price << endl;
break;
case 3:
total_price += 168;
cout << "烤羊排一份,目前消费金额: " << total_price << endl;
break;
case 4:
total_price += 2;
cout << "烤大蒜一份,目前消费金额: " << total_price << endl;
break;
case 5:
total_price += 8;
cout << "老雪一瓶,目前消费金额: " << total_price << endl;
break;
case 6:
total_price += 19;
cout << "罗斯福10号一份,目前消费金额: " << total_price << endl;
break;
case 7:
// 终止循环,修改flag 标记,if 条件判断根据 flag 跳出while循环
flag = true;
break;
default:
cout << "选择错误" << endl;
break;
}
//在while 中,可以使用 if 跳出循环结构
if (flag)
{
cout << "总消费金额:" << total_price << endl;
break;
}
}
return 0;
}