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 特别适合某个变量处于某个区间时的情况。