C++分支结构

1. if 结构

语句:
if(条件)
{
条件满足执行的语句
}
在这里插入图片描述常见错误:if 的小括号后边加分号

//输入一个分数,如果分数大于90分,奖励一朵小红花,请编写一段程序代码。
//分析:结果有一个值,分数值 double 类型。遇到“如果……”或“当……时”这种表达就要用分支结构了。
	double score = 0;
	cout << "请输入你的成绩:" << endl;
	cin >> score;
	if (score > 90)
	{
		cout << "奖励一朵小红花" << endl;
	}

2. if-else 结构

语法:
if(条件)
{
条件满足执行的语句
}
else
{
条件不满足执行的语句
}

	//输入一个分数,如果分数大于90分,奖励一朵小红花,否则打扫卫生,请编写一段程序代码。
	//分析::多了一个否则的处理分支,这时就要用到 if-else 结构了。
	double score = 0;
	cout << "请输入你的成绩:" << endl;
	cin >> score;
	if (score > 90) //如果(成绩>90)
	{
		cout << "奖励一朵小红花" << endl;
	}
	else { //否则
		cout << "打扫卫生" << endl;
	}
//if 和 else 下边用{}表达一个管辖范围,不能在最后带分号。

3. 多重 if 结构

语法:
if(条件){
//语句
}else if(条件){
//语句
}else{
//语句
}
在这里插入图片描述

	//输入一个分数,将成绩转换为 优、良、中、差 。具体要求如下:
	//成绩 >= 90 :优秀; 成绩 >= 80 :良好; 成绩 >= 60 :中等; 成绩 < 60 :差
	//分析:此业务需要用到多重 if 结构来实现,其流程和语法如下:
	double score = 0;
	cout << "请输入成绩" << endl;
	cin >> score;
	if (score >= 90)
	{
		cout << "优秀" << endl;
	}
	else if (score >= 80) {
		cout << "良好" << endl;
	}
	else if (score >= 60) {
		cout << "中等" << endl;
	}
	else
	{
		cout << "差" << endl;
	}

4. 嵌套 if-else

1.一位同学正在进行引体向上测试,输出相应的分数。评判标准如下:

性别10分9分8分7分6分5分
>=9个>=8>=7>=6>=6>=4
>=8个>=7>=6>=5>=4>=3

分析:通过阅读题目,发现存在两个分支控制变量:1)、性别 2)、引体向上个数,需要用到嵌套 if-else 结构。

	string sex = "";
	cout << "请输入性别:" << endl;
	cin >> sex;
	int num = 0;
	cout << "请输入引体向上个数:" << endl;
	cin >> num;
	int score = 0;
	if (sex=="男")
	{
		if (num >=9)
		{
			score = 10;
		}
		else if (num >= 8) {
			score = 9;
		}
		else if (num >= 7) {
			score = 8;
		}
		else if (num >= 6) {
			score = 7;
		}
		else if (num >= 5) {
			score = 6;
		}
		else {
			score = 5;
		}
	}
	else {
		if (num >= 8)
		{
			score = 10;
		}
		else if (num >= 7) {
			score = 9;
		}
		else if (num >= 6) {
			score = 8;
		}
		else if (num >= 5) {
			score = 7;
		}
		else if (num >= 4) {
			score = 6;
		}
		else {
			score = 5;
		}
	}
	cout << "引体向上成绩为:" << score << endl;

2.练习:比较三个数的大小(加强对分支结构的练习)

/*练习案例:有三个数ABC,请输入ABC的值,并且判断哪数最大?*/
	//方法一:
	int a = 0;
	int b = 0;
	int c = 0;
	cout << "请输入a的值" << endl;
	cin >> a;
	cout << "请输入b的值" << endl;
	cin >> b;
	cout << "请输入c的值" << endl;
	cin >> c;
	int d = 0;
	if (a > b) 
	{
		if (a > c) //a比c大
		{
			d = a;//将a赋给c
		}
		else//否则c比a大
		{
			d = c;
		}
	}
	else
	{
		if (b > c)//b比c大
		{
			d = b;
		}
		else//否则c比b大
		{
			d = c;//
		}
	}
	cout << "最大的数是:" << d << endl;//输出最大的数

	//方法二:
	int a = 0;
	int b = 0;
	int c = 0;
	cout << "请输入a的值" << endl;
	cin >> a;
	cout << "请输入b的值" << endl;
	cin >> b;
	cout << "请输入c的值" << endl;
	cin >> c;
	
	if (a < b) 
	{
		a = b;
	}
	if (a < c)
	{
		a = c;
	}
	cout << "最大的数是:" << a << endl;

5. 三目运算符

语法: 表达式1 ? 表达式2:表达式3
如果表达式1的值为真,执行并返回表达式2的结果;
如果表达式1的值为假,执行并返回表达式3的结果。

  
	int a = 12;
	int b = 20;
	cout << (a < b ? a : b)<< endl; //输出12(a<b为true,则执行并返回表达式2(a)的结果)
	
	int c = a > b ? a : b; //返回表达式3 b的结果,并且赋给c
	cout << "c = " << c << endl; //20

	(a < b ? a : b) = 66; //返回表达式2 a的结果,并且让结果等于66
	cout << "a = " << a << endl; //66
	cout << "b = " << b << endl; //20
	cout << "c = " << c << endl; //20

6. switch语句

语法:
switch(条件表达式)//switch语句中表达式类型只能是整型或者字符型
{
case 常量1:
       执行语句;
       break;
case 常量2:
       执行语句;
       break;
default:
       执行语句;
       break;
}

总结:switch 处理等值的条件判断,多重 if 特别适合某个变量处于某个区间时的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

1024节

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

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

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

打赏作者

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

抵扣说明:

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

余额充值