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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吾爱SF 中级黑马   /  2015-4-28 23:42  /  624 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

if(5<2);
   System.out.println("111");   -------   输出111
if(5<2)
   System.out.println("111")    --------  不输出

6 个回复

倒序浏览
这样的代码,编译就会报错。没有结束代码。写完代码必须要有“;”结束,或者用代码块括起来。你的第一个判断语句后面加分号了,代表第一个判断后面是空语句,紧接着的 System.out.println("111"); 是一定会输出的;下面那个判断,如果在System.out.println("111") 后面加上“;”可以正常编译通过,因为if(5<2)恒不成立,所以永远不会执行该if后面的代码。
回复 使用道具 举报
楼上明察秋毫
回复 使用道具 举报
cyr 发表于 2015-4-29 12:49
这样的代码,编译就会报错。没有结束代码。写完代码必须要有“;”结束,或者用代码块括起来。你的第一个判 ...

所以是这样举例子 eclipse 会后黄色提示
if(5<2);//这儿显示deadcode
  {
   System.out.println("111");
  }// 都是deadcode
if(5<2)//
  {//
   System.out.println("111");
  }
回复 使用道具 举报
eclipse会自动告警,提示:死代码,永远不会运行
回复 使用道具 举报
jiao142857 发表于 2015-4-29 20:32
所以是这样举例子 eclipse 会后黄色提示
if(5

听过构造代码块吗?回去查查资料吧。
  1. if(5<2);//判断后为空代码
  2.   {
  3.    System.out.println("111");
  4.   }// 变成构造代码块,在对象生成的时候先与构造函数先执行。所以可能会输出:111;
复制代码
回复 使用道具 举报
cyr 发表于 2015-4-29 20:44
听过构造代码块吗?回去查查资料吧。

大神!...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马