A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dreamseekerkun 中级黑马   /  2014-8-26 10:53  /  2094 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 dreamseekerkun 于 2014-8-26 12:35 编辑


上午做了个练习题,写了大量代码,老是没搞清哪错了,后来写了下if验证,原来是这错误了,一直以来理解错了。
else是可以被执行到的。一直以为判断完第一个num>0,就结束了。

15 个回复

倒序浏览
本帖最后由 caixingke 于 2014-8-26 11:03 编辑

真实的开发中, 很多公司都会有代码风格的要求.
即使if下面只有一个句子, 也最好加上{}, 这样看起来看加清晰, 减少一些不必要的低级错误.
  1.         int num = 10;
  2.         
  3.         if (num>0){
  4.             System.out.println(">0");
  5.         } else if(num<0){
  6.             System.out.println("<0");
  7.         } else{
  8.             System.out.println("可以执行到吗?");
  9.         }
复制代码

也有好多大公司没有这么做.
比如JAVA类库的源代码, 常常没有这么做.
不好.
回复 使用道具 举报
学习了。。。。。。。。。。。。
回复 使用道具 举报
caixingke 发表于 2014-8-26 11:00
真实的开发中, 很多公司都会有代码风格的要求.
即使if下面只有一个句子, 也最好加上{}, 这样看起来看加清晰 ...

恩加上确实可以减少一些低级错误,第二行的else不加,差大了,折腾我好久,一直没搞明白哪错了
回复 使用道具 举报
楼主的源代码是一个if语句,一个if-else语句。如果第二个是else if,就不会执行第三个输出语句了吧。
回复 使用道具 举报
yaodd321 发表于 2014-8-26 11:25
楼主的源代码是一个if语句,一个if-else语句。如果第二个是else if,就不会执行第三个输出语句了吧。 ...

正解啊,,,,其实他这个本身是两个语句,,,,,
回复 使用道具 举报
如果把上面的if语句改为if(num<=0){}或者if(num>=0){}的话。else是执行不到的
回复 使用道具 举报
mjwp_cool 发表于 2014-8-26 11:36
如果把上面的if语句改为if(num=0){}的话。else是执行不到的

哎   上面写错了  没看清
回复 使用道具 举报
是因为你的else语句只属于第二个if语句,和第一个没关系。这样说的话你能明白为什么能执行到了吧
回复 使用道具 举报
这是两个语句吧,if(){}、if(){}else{}两个
回复 使用道具 举报
else是和最近的一个if进行匹配的,加上括号就不会出现这个问题
回复 使用道具 举报
>0可以执行到么
结果是这样?
回复 使用道具 举报
king13131313 发表于 2014-8-26 14:47
>0可以执行到么
结果是这样?

可以执行到。
回复 使用道具 举报
注意代码格式的书写,就可以少些这样的错误
回复 使用道具 举报
这代码确实好简单0.0
回复 使用道具 举报
你 那样写 第二个if都会被执行的  执行到第二个if如果条件为真就输出if下的语句如果为假 就执行else。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马