C++中的选择结构(三只小猪问题案例和成绩评级案例)
C++中的选择结构
if语句
-
单行if语句:if (条件){满足条件后执行的语句};
-
多行if语句:if (条件){满足条件后执行的语句}
else {不满足条件后执行的语句}; -
多条件if语句:if (条件1){满足条件1后执行的语句}
else if(条件2){满足条件2后执行的语句}
else {条件1和条件2都不满足后执行的语句}; -
嵌套if语句:if (条件1){if(条件2){满足条件2后执行的语句}};
用if语句实现三只小猪称体重,判断哪只最终的问题(即输入三个整数判断哪个数最大的问题类似)代码如下:
#include<iostream>
using namespace std;
int main()
{
//三只小猪称体重,判断哪只最重
//1、创建三只小猪的体重变量
int num1 = 0;
int num2 = 0;
int num3 = 0;
//2、用户输入三只小猪的重量
cout << "请输入小猪A的体重" << endl;
cin >> num1;
cout << "请输入小猪B的体重" << endl;
cin >> num2;
cout << "请输入小猪C的体重" << endl;
cin >> num3;
cout << "小猪A的体重为:" << num1 << endl;
cout << "小猪B的体重为:" << num2 << endl;
cout << "小猪C的体重为:" << num3 << endl;
//3、判断哪只最重
if (num1 > num2) //A比B重
{
if (num1 > num3) //A比C重
{
cout << "小猪A最重" << endl;
}
else //C比A重
{
cout << "小猪C最重" << endl;
}
}
else //B比A重
{
if (num2 > num3) //B比C重
{
cout << "小猪B最重" << endl;
}
else //C比B重
{
cout << "小猪C最重" << endl;
}
}
system("pause");
return 0;
}
三目运算符
语法格式:表达式1?表达式2:表达式3
语法含义:如果表达式1的值为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
用三目运算符实现赋值的代码如下:
#include<iostream>
using namespace std;
int main()
{
//三目运算符
//创建三个变量 a b c
//将a和b做比较,将变量大的值赋值给变量c
int a = 10;
int b = 20;
int c = 0;
c = (a > b ? a : b);
cout << "c = " << c << endl;
(a > b ? a : b) = 100; //将100赋值给b
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}
switch语句
语法格式:switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
…
default:执行语句;break;
}
用switch实现成绩评级代码如下:
#include<iostream>
using namespace std;
int main()
{
//输入学生成绩
int score = 0;
cout << "请输入学生成绩:" << endl;
cin >> score;
//判断输入的成绩是否正确
if (score > 100 || score < 0)
{
cout << "输入有误" << endl;
}
//判断成绩等级
switch (score / 60)
{
case 1:
switch (score / 10)
{
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;
default:cout << "输入有误" << endl; break;
}break;
case 0:cout << "不及格" << endl; break;
default:cout << "输入有误" << endl;
}
system("pause");
return 0;
}