if else语句是一种分支结构,当条件满足时,有“if语句”和“else语句”两条分支。表达式的值在逻辑上只有真和假,故 if 和 else 在执行流程上是互斥的,执行且只能执行两者中的一个。
标准格式:
if(条件表达式) { 复合语句; } else{ 复合语句; }
条件表达式可以是关系表达式、逻辑表达式、算术表达式或混合表达式等。
当if 语句体或 else 语句为一条简单语句时,可以省略 {}
if(条件表达式) 简单语句; else简单语句;
或
if(条件表达式) 符合条件执行语句; else不符合条件执行语句;
注:如果省略则默认只执行第一复合语句的第一条指令
if-else
if-else嵌套
- 配对的 if-else 语句可以看成一条简单语句。
- 一条 if 语句也可以看成一条简单语句。
- 在嵌套结构中会有多个“if”与多个“else”关键词,每一个“else”都应有对应的“if”相配对。
- 原则:“else”与其前面最近的还未配对的“if”相配对。
例题
我们恢复一下完整的代码
完整的代码
intx=2,y=-1,z=2; if(x<y){ if(y<0){ z=0; }else{ z+=1; } } printf("%d\n",z);
这题需要注意的是:
- 配对的 if-else 语句可以看成一条简单语句。
- 当if 语句体或 else 语句为一条简单语句时,可以省略 {}
- 如果省略 {} 则默认只执行第一复合语句的第一条指令
- “else”与其前面最近的还未配对的“if”相配对。
对比两组代码,我们可以清楚的知道,并未执行x<y时的复合语句,因此z并未改变,还是2