------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
第一讲 分支语句if的使用
一般形式:如果表达式为真执行语句块1,否则不执行。
if(表达式){
语句块1 //原理:
} 先计算小括号中的表达式值
后续语句; 真(1) 会执行大括号内语句
假(0) 不执行大括号内语句
例如:
int num =0;
printf("请输入一个数字:\n");
scanf("%d",&num); //接受数字
if(num==5){
printf("恭喜你\n");
}
if(num!=5){
printf("很可惜\n");
}
除了基本用法,if还有其他用法
如if....else语句
格式如下:
if(表达式){
语句块1; //如果表达式为真,则执行语句块1
}else{ //注意:不管表达式为真为假,都会执行一个分支
语句块2; //如果表达式为假,则执行语句块2
}
例:
int num =0;
printf("请输入一个数字:\n");
scanf("%d",&num);
if(num==5){
printf("恭喜你\n");
}else{
printf("很可惜\n";
}
if语句的嵌套
例:
int num =0;
printf("请输入一个数字:\n");
scanf("%d",&num);
if(num==5){
printf("恭喜你\n");
}else{
if(num>5){
printf("大于5了\n"); //if语句的嵌套
}else{
printf("小于5了\n");
}
}
if语句的高级用法
基本格式:
if(表达式1){
语句块1;
}else if(表达式2){ // 如果表达式1为真,则执行语句块1,
否则判断表达式2,如果为真,执行语句块2,
语句块2 否则再判断表达式3,为真执行语句块3,
当表达式1,2,3都不满足时,执行最后一个语句
}else if(表达式3) {
语句块3;
}else{
语句块4;
}
例:
int main()
{
int n; //定义一个变量作为分数
scanf("%d",&n); //接受分数
if(n>90)
{
printf("A");
}
else if(n>=80 && n<=90) //分数在哪个区间对应哪个等级
{
printf("B");
}
else if(n>=70 && n<=79)
{
printf("C");
}
else if(n>=60 && n<=69)
{
printf("D");
}
else
{
printf("E");
}
return;
}
switch语句基本格式:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
...... ...........
case 常量表达式n: 语句n;
default: 语句n+1;
}
其语义是:计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,就执行这个常量表达式的语句,然后不再进行判断,继续执行之后所有的语句,如表达式的值与所有常量表达式都不想等,则执行default后的语句
注意:
switch有个case语句穿透问题,某个case语句执行完之后,并没有结束,而直接向下执行其他的case语句,这种现象称之为case语句的穿透。
如何防止:
我们需要在每一个case语句结束之后,加上一句break;break的作用是结束switch语句。
例:
int main()
{
int num;
scanf("%d",&num);
switch(num)
{
case 1: printf("A");
break;
case 2:printf("B") //加break防止穿透
break;
case 3: printf("C")
break;
case 4: printf("D");
break;
default:
printf('?');
}
printf("\n");
}
if和switch的联系:
分支比较多且无法穷尽或进行大量列举时最好用if,分支比较少,但使用if代码量比较多的时候,可以用switch。
switch语句表达式类型:
1)可以放一个整形变量,如int sum=10;switch(num)
2)可以放一个整形常量,如switch(10)
3)可以放一个返回值是整形的表达式,如switch(5+5)
4)可以放可以转换为int类型的表达式,如(‘a’+‘a’)(‘a’)
case语句注意事项:
1)case语句格式 case 后面加个空格不能省 常量表达式: (空格和冒号不能省)
2)可以是常量,如case 10
3)可以是常量表达式5+5
4)default语句的位置可以任意放
5)case语句穿透同样使用default
6)如果default语句放到switch语句最后,可以不加break,如果不放最后必须加上break防止穿透
7)case后面不能是实数
8)case语句之后默认的第一句话不能定义变量,如果非要定义比较加上大括号