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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@赵士杰

如果对你有用,可以进行打赏,感

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值