if...else的小细节

if语句:

if...else的匹配:

下面代码输出结果是什么?

是hehe?还是haha?还是...

不管是hehe还是haha都错了!

因为第二个if语句对应的else(就近原则),else会找最近的if组成if...else语句。

而第一个if不成立,所以无法读第二个if,else也就无法读到。

else总是和它最近的if匹配,构成if...else语句。

if()括号中的条件:

当常量和变量在比较相等的时候,建议把常量放在左边,变量放在右边。正确了没什么问题,正常输出;错误了会提醒编写错误,更无法运行。

下面两个if(num==5) 与 if(5==num) ,括号里面都是判断常量5与变量num相等与否,所以编译起来结果一样,并且正确。

可以看到变量num与常量5在左右哪边都可以。

而下面if(num=5)与上面不同的是只有一个"="(假如不小心少写了一个),而两个"="是比较,一个"="是赋值。所以这句相当于把常量5赋值给了变量num,而if判断的就是真假了。

当if()括号里面的值非0则为真,就进入到了if判断里面;当括号里面的值为0则为假,就执行else语句(图中没有写else的部分,所以直接读return 0;)。

我们可以看到变量num在左边,常量5在右边,可以编译执行并且有结果!

因为当5赋值给了变量num,括号里面的值非0,所以if判断为真,并执行printf输出hehe。

虽然可以编译,运行出来的了。但是我们是想判断变量num与常量5比较相等与否,可是编译器没有显示错误,如果我们写的代码量不多的情况下,我们从开始去一个一个的查找错误还不是很难,但是如果代码量多的情况下,自己也不知道哪里有错误,然后一个一个去查找的话......(可能都想重新去写一遍吧...)。

友好提醒:如果是两个量比较相等与否的话!!!注意是两个"="!!!

 而下面这个if(5=num)也是如果少写了一个"="。但是常量5在左边,而变量num在右边;我们知道赋值是把右边的值赋值给左边的变量,但是5是常量没办法赋值(上面的写法左边是变量num被赋值5是可以的!)我们可以看到与上面少写"="的写法不同的是,下面这种写法,少一个"="是有错误提醒的。并且代码不会运行起来,它给我们报错,我们可以直接的找到错误处。这种写法更加容易让我们发现问题,并且及时改正。

 

 

所以当常量和变量在比较相等的时候,建议把常量放在左边,变量放在右边。正确了没有问题,正常输出;错误了无法运行,并且会提醒错误,我们可以及时改错。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值