if与else的错误使用

当我们写出以下代码的时候:

调试的结果会出现2个错误,且都在else中:

                为什么这样会报错呢,这就需要从if与else的匹配原则来说起了,下面是它们的匹配原则:

                if-else语句中,if和else的配对原则都是在同一个复合语句括号“ {}”作用域内就近配对的原则。 如果不属于同一个复合语句括号“ {}”作用域内,则不会被配对,此时如果配对存在问题,会报语法错误。

                也就是说,if后面的作用域必须紧贴着else才能够进行配对。

                上面的代码是:if后面没有加大括号,使用只影响下一行代码,也就是第一个printf,而第二个printf则不在它的作用域中,这个时候,else没有匹配到if,所以就会报错。

下面是if与else的另一种错误的使用方法:

 

 

                这段代码是可以执行的,但得出来的结果是什么也没有:

 

                这也是if与else得匹配原则问题,上面说了,else是依据就近原则匹配if的,且else会匹配到最近的没有被匹配过的if,所以,这里的else会匹配到第二个else。

                总结:当使用if-else语句时不能再它们的中间插入正常语句,否则会报错,建议用大括号把它们的作用域显现出来,这样比较直观。
 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值