4.常用循环类型

常用循环类型

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;
}

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值