C++学习笔迹(五)——选择结构(if、双目运算符、switch)

1. if结构

1.1单行if语句

 if(条件表达式)     //后面千万不要写分号。不然后面的“执行语句”就废了

{

执行的语句

} 
#include<iostream>
using namespace std;

int main()
{
	//选择结构   单行if语句
	//实现:用户输入分数,如果分数大于600,视为考上一本大学,在屏幕上输出

	//1.用户输入分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;

	//2.打印用户输入的分数
	cout << "您输入的分数:" << score << endl;

	//3.判断是否大于600.如果大于,那么输出
	if (score > 600)
	{
		cout << "恭喜您考上了一本大学" << endl;
	}  //输入599,就不打出来"恭喜您考上了一本大学"
	

	system("pause");
	return 0;
}

1.2 多行if语句

#include<iostream>
using namespace std;

int main()
{
	//多行if语句
	//案例:输入考试分数,如果分数大于600,视为考上一本
	//      没考上一本大写,打印“没考上一本大学”

	//1.输入考试分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;

	//2.提示用户输入的分数
	cout << "您输入的分数:" << score << endl;

	//3.判断  大于600,打印考上一本,否则打印没考上一本
	if (score > 600)  
	{
		cout << "恭喜您考上了一本大学" << endl;
	}
	else
	{
		cout << "您未考上一本大学" << endl;
	}

	system("pause");
	return 0;
}

1.3 多条件if语句

#include<iostream>
using namespace std;

int main()
{
	//多条件if语句
	//输入一个分数
	//大于600分,考上一本大学
	//大于500分,考上二本大学
	//大于400分,考上三本
	//小于等于400分,为考上本科

	//1.输入考试分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;

	//2.提示用户输入的分数
	cout << "您输入的分数:" << score << endl;

	//3.判断  
	if (score > 600) //大于600,打印考上一本,否则打印没考上一本
	{
		cout << "恭喜您考上了一本大学" << endl;
	}
	else if(score > 500) //大于500,打印考上二本
	{
		cout << "恭喜您考上了二本大学" << endl;
	}
	else if (score > 400) //大于400,打印考上三本
	{
		cout << "恭喜您考上了三本大学" << endl;
	}
	else   //收尾,前面都不满足就执行它对应的语句
	{
		cout << "很遗憾,没考上本科,再接再厉!" << endl;
	}
	system("pause");
	return 0;
}

1.4嵌套if语句

禁止套娃,if的嵌套本质上就是if的某一个条件中,在这个条件下再细分条件并对应其执行语句。

#include<iostream>
using namespace std;

int main()
{
	//多条件if语句
	//输入一个分数
	//大于600分,考上一本大学
			 //大于700,考上清华
			 //大于650,考上北航
			 //大于600,考上农大
	//大于500分,考上二本大学
	//大于400分,考上三本
	//小于等于400分,为考上本科

	//1.输入考试分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;

	//2.提示用户输入的分数
	cout << "您输入的分数:" << score << endl;

	//3.判断  
	if (score > 600) //大于600,打印考上一本,否则打印没考上一本
	{
		cout << "恭喜您考上了一本大学" << endl;
		if (score > 700)
		{
			cout << "您能考上清华大学!!!" << endl;
		}
		else if (score > 650)
		{
			cout << "您能考上北航!!!" << endl;
		}
		else
		{
			cout << "您能考上农大!!!" << endl;
		}
	}
	else if (score > 500) //大于500,打印考上二本
	{
		cout << "恭喜您考上了二本大学" << endl;
	}
	else if (score > 400) //大于400,打印考上三本
	{
		cout << "恭喜您考上了三本大学" << endl;
	}
	else   //收尾,前面都不满足就执行它对应的语句
	{
		cout << "很遗憾,没考上本科,再接再厉!" << endl;
	}
	system("pause");
	return 0;
}

1.5三只小猪称体重——if语句案例

输入三只小猪ABC的体重,判断那只最重。

思路:

#include<iostream>
using namespace std;

int main()
{
	//三只小猪称体重
	//1.创建三只小猪的体重变量
	int num1 = 0;
	int num2 = 0;
	int num3 = 0;

	//2.输入三只小猪的重量
	cout << "输入第一只小猪的重量:" << endl;
	cin >> num1;

	cout << "输入第二只小猪的重量:" << endl;
	cin >> num2;

	cout << "输入第三只小猪的重量:" << endl;
	cin >> num3;

	cout << "小猪A的体重为:" << num1 << endl;
	cout << "小猪B的体重为:" << num2 << endl;
	cout << "小猪C的体重为:" << num3 << endl;

	//3.判断哪只最重
		//先判断A和B重量
	if (num1 > num2)
	{
		if (num1 > num3)
		{
			cout << "小猪A最重" << endl;
		}
		else
		{
			cout << "小猪C最重" << endl;
		}
	}
	else
	{
		if (num2 > num3)
		{
			cout << "小猪B最重" << endl;
		}
		else
		{
			cout << "小猪C最重" << endl;
		}
	}

	system("pause");
	return 0;
}

2. 三目运算符

条件运算符强大而独特,它提供了一种表达简单 if-else 语句的简写方法。该运算符由问号(?)和冒号(:)组成,其格式如下:

表达式 ? 表达式 : 表达式 ;

#include<iostream>
using namespace std;

int main()
{
	//三目运算符

	//创建三个变量  a  b  c
	//将a和b作比较,将变量中大的值赋值给c
	int a = 10;
	int b = 16;
	int c = 0;

	c = (a > b ? a : b);
	cout << "c = " << c << endl;

	//C++中三目运算符返回的是变量,可以继续赋值
	(a > b ? a : b) = 100;   //判断a和b的大小,然后将100赋值给返回的变量
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	system("pause");
	return 0;
}

3.switch语句

四个关键字:switch 、 case 、 break 、 default

switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

#include<iostream>
using namespace std;

int main()
{
	//switch语句

	//给电影进行打分
	//  10  经典
	//  8/ 9  非常好
	//  7 - 5   一般
	//   5一下  烂片
	
	//1.提示用户进行打分
	cout << "请给电影打分:" ;

	//2.用户打分
	int score = 0;
	cin >> score;
	cout << "你打的分数为" << score << endl;

	//3.提示结果
	switch (score) //缺点:只能放一个整数或者字符,不能放区间
				   //优点:结构清晰,执行效率高
	{
	case 10: cout << "你认为是经典电影!" << endl; break;
	case 9:  cout << "你认为电影非常好!" << endl; break;
	case 8:  cout << "你认为电影非常好!" << endl; break;
	case 7:  cout << "你认为电影一般!"   << endl; break;
	case 6:  cout << "你认为电影一般!"   << endl; break;
	case 5:  cout << "你认为电影一般!"   << endl; break;
	default: cout << "你认为电影是烂片"   <<endl; 

	}



	system("pause");
	return 0;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是刃小木啦~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值