if
一.if
1. 格式:if (表达式/常量/变量) { 语句块 }
2.原来:如果表达式为真就执行语句块里的内容,为假就不执行。
二.if-else-
1.格式:if (表达式) {
语句块 1
}else{ 语句块2 }
2.原理:如果表达式为真执行语句块1,表达式为假执行语句块2。
3.注意:无论是真假都会执行一个语句块。
三.if-else-嵌套
1.格式: if(表达式1){
语句块1
}else if(表达式2){
语句块2
}else if(表达式3){
语句块3
}else{ }
2.原理:表达式1为真就是执行语句块1,如果1为假2为真就执行语句块2,1.2都为假3为真就执行语句块3以此类推。四.if 使用注意:
1.空语句 :表达式后面没有任何要执行的语句。
例:if (a==3);
2.if之后的代码块,如果只有一个语句块的话可以省略大括号。
例:if(a>3)
printf("a>2\n");
print("a>3\n");
如果条件为真两句话都会打印,为假的话printf("a>2\n");这句话不会打印,是因为if后面省略了大括号,只影响一句话。
3.永真永假式
例:if (1) { }
大括号里永远执行。
if (0){ }
大括号里永远不执行。
4.if语句结合return语句。
例:if (a==3)
return 0;
printf("a>3");
return语句之后的语句都不会执行,所以不会执行printf("a>3");这句话。
5.if的作用域
例:if(a==3){
int no=10;
}
printf("no=%d",no);
no 是打印不出来的,因为语句块相当于一个代码块,执行完会释放掉。
switch
一.switch
1.格式:switch(表达式){
case 常量表达式1:语句块1
case 常量表达式2:语句块2
case 常量表达式n:语句块n
defauit :语句n+1
}
2.原理 :1)表达式的值逐个与其后的常量表达式的值相比较,当表达式的值与某个case后面的常量表达 式相等时,就执行该常量表达式后面的语句,然后不再进行判读,继续执行该语句后面所有case后的语句。
2)如果表达式和case后的常量表达式均不相等,就执行defauit的后面的语句。
二.case穿透问题
1.case穿透视:当执行某个case后面的语句之后,并没有结束,而是继续执行下面case后的语句。
2.防止case穿透:在每一个case语句的后面加上一句“break”;。
break作用:结束switch语句。三switch使用注意:
1.switch表达式的类型
1).可以是整型的变量
例:num=10;
switch(num)
2).可以是整型的常量
例:switch(10)
3).可以是返回值是整型的表达式
例:switch(5+5)
4).可以是转换为int类型的表达式
2.case后可以有多行语句,可以加括号,也可以省略括号。
3.可以加break,也可以不加。
4.case语句的注意
1).case语句的格式:case 常量表达式:(空格和冒号不能省略)
2).可以是常量
例:case 10:
3).可以是常量表达式
例:case 5+5:
4).default语句位置可以任意放
5).case的穿透问题同样适用于default
6).default语句放到switch语句最后,可以不用加break,如果不是放在最后,必须加上break
7).case 后面不能是实数
8).case语句后,默认的第一句话不能定义变量,如果第一句话非要定义的话要加上大括号 |
|