1.第一种形式:
语法:if(表达式){
语句块;
}
语义:如果表达式的结果为真,则执行语句块,否则不执行语句块
第二种形式:
语法:
if(表达式){
语句块1;
}else{
语句块2;
}
语义:如果表达式的结果为真,则执行语句块1,否则执行语句块2
语句块1或者语句块2,至少会有一个被执行
第三种形式:
if语句的嵌套
简单来说:就是if语句里面还可以有任意的if语句
第四种形式:
语法:
if(表达式1){
语句块1
}else if(表达式2){
语句块2
}else if(表达式3){
语句块3
}
……………………
else if(表达式n){
语句块n
}else{
语句块n+1;
}
语义:先判断表达式1,如果成立则执行语句块1,后面的都不执行了,否则继续判断表达式2,如果成立,则执行语句块2,后面的都不执行了,如果不成立则判断语句块3,如果成立则执行语句块3,否则继续往下判断,直到else上面的条件都不满足,就执行语句块n+1;
而且我们的这种语法格式是一个整体,上面判断过的内容如果不成立,那么下面判断时已经做了过滤
if使用注意
1、分号:
a.在C语言之中,分号代表1条指令的结束. 一般情况下,我们应该在1条语句的后面跟上1个分号.
b.如果是一个代码块的话,就不需要为这个代码块加分号
代码块:凡是1对大括号就代表一个代码块
因为大括号本身就代表开始和结束,所以不需要再加额外的分号去结束了,就算要加 也应该加在大括号的后面
2、if语句括号内的条件问题:
C语言中语法规定条件中什么表达式都可以写,无论是什么表达式都是先计算出表达式的结
果,0 代表假 非0代表真(负数也为真)
但是我们在条件里一般都写条件表达式,因为只有条件表达式比较有意义
3、永真永假的问题:
if(1)这个条件永远成立
if(0)这个条件永远不成立
凡是可以写表达式的地方都可以写数据,因为表达式有结果
4、if语句作用域问题:
在if或else语句块里定义的变量,只能在当前代码块中访问
5、if语句的大括号可以省略:
但只限只有一句话执行时,并且不可以声明变量
6、if或者else语句块中可以写任意行代码