if else语句需要注意的问题


image-20210306192900463

if else语句是一种分支结构,当条件满足时,有“if语句”和“else语句”两条分支。表达式的值在逻辑上只有真和假,故 if 和 else 在执行流程上是互斥的,执行且只能执行两者中的一个。

标准格式:

if(条件表达式)
{
	复合语句; 
} else{
	复合语句;  
}

条件表达式可以是关系表达式、逻辑表达式、算术表达式或混合表达式等。

当if 语句体或 else 语句为一条简单语句时,可以省略 {}

if(条件表达式)
	简单语句; 
else
	简单语句; 

if(条件表达式) 符合条件执行语句; 
else 不符合条件执行语句; 

当if 语句体或 else 语句为多条语句(复合语句)时,不可以省略 {}

if(条件表达式)
{
	复合语句; 
} else{
	复合语句; 
}

注:如果省略则默认只执行第一复合语句的第一条指令

if-else

if-else嵌套

image-20210306202138726
  • 配对的 if-else 语句可以看成一条简单语句。
  • 一条 if 语句也可以看成一条简单语句。
  • 在嵌套结构中会有多个“if”与多个“else”关键词,每一个“else”都应有对应的“if”相配对。
  • 原则:“else”与其前面最近的还未配对的“if”相配对。

例题

image-20210306202449776

我们恢复一下完整的代码

完整的代码

		int x=2,y=-1,z=2;
        if(x<y){
            if(y<0){
                z=0;
            }else{
                z+=1;
            }
        }
        printf("%d\n",z);

这题需要注意的是:

  1. 配对的 if-else 语句可以看成一条简单语句。
  2. 当if 语句体或 else 语句为一条简单语句时,可以省略 {}
  3. 如果省略 {} 则默认只执行第一复合语句的第一条指令
  4. “else”与其前面最近的还未配对的“if”相配对。

对比两组代码,我们可以清楚的知道,并未执行x<y时的复合语句,因此z并未改变,还是2

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页