学习目标:
if else switch 的使用方法和注意事项
学习内容:
if单独使用
if(表达式)
{
复合语句;
}
用法:
- 只要表达式的值为真(非0),执行{ 复合语句} 。
- "表达式":任意的C语言合法的表达式都可以。
如果只有一条执行语句,可以这样写:
if(表达式)
{
执行语句1; // 如果表达式为真,那么执行语句1
执行语句2; //不管表达式是否为真,永远执行语句2,因为这个表达式不属于if响应范围
}
if 与 else 配合使用
if(表达式) //如果为真,执行复合语句1,如果为假,则执行复合语句2
{
复合语句1;
}
else
{
复合语句2;
}
if(表达式1) //如果为真,执行复合语句1
{
复合语句1;
} //如果判定条件1和判定条件2都满足,那么只会执行复合语句1,而不会执行复合语句2
else if(表达式2)
{
复合语句2;
}
else if(表达式3)
{
复合语句3;
}
.....
else //以上三个条件都不满足的时候,就会执行复合语句n
{
复合语句n;
}
if的嵌套: 条件里面再分条件
if的嵌套: 条件里面再分条件
if(表达式1)//如果为真,执行复合语句1
{
if(表达式11)
{
复合语句1;
}
}
else if(表达式2)
{
复合语句2;
}
编程规范:写完if或else后,不管后面有没有语句,请先写{}圈定它的范围,然后再到{}里面补充语句,用Tab缩进。
例题:制作一个简单的打分系统(满分制:100)
60分以下:评级 D;60-80:评级 C; 80-90: 评级 B; 90-100:评级 A;不在0-100范围之内,错误。
#include <stdio.h>
int main()
{
int input;
printf("请输入成绩:");
scanf_s("%d", &input);
if (input <= 100)
{
if (input >=90)
{
printf("评级:A\n");
}
else if (input < 90 && input >= 80)
{
printf("评级:B\n" );
}
else if (input < 80 && input >=60)
{
printf("评级:C\n");
}
else
{
printf("评级:D\n");
}
}
else
{
printf("抱歉,输入的数只能≤100\n" );
}
return 0;
}
switch语句(开关语句)
格式:
switch(表达式) // 或者也可以说是 判断值
{
case 常量表达式1:
执行语句1
break;
case 常量表达式2:
执行语句2
break;
case 常量表达式3:
执行语句3
break;
default:
其他情况下执行的语句
break;
}
(1)"表达式"的值必须为整数值(整型,字符型,枚举)
(2)"常量表达式"的值必须为整数值,且每个case后面的常量表达式的值必须不相同。
(3)当表达式的值与某一个case后面的常量表达式的值相同时,就会打开"开关",执行冒号后面的语 句,直到有break语句就提前跳出switch,否则就轮到下一个case,且不会比较常量表达式的值,就直接执行冒号后面的语句(因为开关已经打开了),当所有的语句都执行完了,就结束了switch。
(4)break;提前跳出switch语句,常用的用法是每个case语句后都有一个break语句。
(5)当所有case后面的常量表达式都不匹配时,就会执行default后面的语句,且打开"开关"。
注意:
1,break在这里是退出switch的关键,如果在case当中的执行语句中没有遇到break,它将会一直执行下去,直到遇到break或者到底了
2,default这个可加可不加
3,default放在哪里都不会影响switch的正常使用
4,“判断值”只能是整型数据或者是枚举
例如:
计算加盟费
小张加盟了一家餐饮企业,在每个季度结束后,小张必须向总部缴纳加盟费,
加盟费与营业额的提成关系如下
营业额 提成系数
0<= n <10w 0.1
10<=n <20w 0.075
20<=n <40w 0.05
40<=n <60w 0.03
60<=n <100w 0.015
n >=100w 0.01
请输入小张的营业额,然后求出他需要提交的加盟费
#include <stdio.h>
int main()
{
double input;
double _$;
int i;
printf("输入营业额(w):");
scanf_s("%lf", &input);
switch(i= input/10)
{
case 0 :
_$ = input * 0.1;
printf("需要提交的加盟费为(w):%lf", _$);
break;
case 1:
_$ = input * 0.075;
printf("需要提交的加盟费为(w):%lf", _$);
break;
case 2|3:
_$ = input * 0.05;
printf("需要提交的加盟费为(w):%lf", _$);
break;
case 4|5:
_$ = input * 0.03;
printf("需要提交的加盟费为(w):%lf", _$);
break;
case 6|7|8|9:
_$ = input * 0.015;
printf("需要提交的加盟费为(w):%lf", _$);
break;
default:
_$ = input * 0.01;
printf("需要提交的加盟费为(w):%lf", _$);
break;
}
return 0;
}