黑马程序员技术交流社区

标题: 关于if()的有趣的小知识点求解答 [打印本页]

作者: 宋叔辉    时间: 2016-1-18 22:22
标题: 关于if()的有趣的小知识点求解答
int i=1;
if(i<2) int b=1;
这个的结果是显示编译错误的,同时:
int i=1;
if(i<2){
     int b;
}
是不会显示编译错误的,
第一个编译错误的原因是因为 int b=1;代表了两个语句分别是
int b;b=1;
我只是单纯觉得有趣而已................
我在想如果只有这一种赋值语句会发生编译错误,那么开发java语音的人为什么不直接把
他在底层改一下让编译器可以接受并且解析这个错误呢?这是我第一个想到的
第二个就是可能除了这个语句外还有其他语句会导致编译错误,那么这些语句又是哪一些呢?
有人可以解答吗?
作者: jacky左    时间: 2016-1-19 23:02
for(),if()   如果不加{},会默认执行他后面的一条语句,只执行一条   
;    代表一个语句的结束 如果像这样
  for (int i=0;i<100;i++);    //注意末尾这里有一个分号

作者: 酱油    时间: 2016-1-20 00:04
有意思
作者: bestcaptain    时间: 2016-1-20 00:46
我的观点是  因为第一个这样简单而编译错误的代码如果被识别所带来的代码改动会导致两种后果:1JAVA语言为了更人性化而接受更多这样的代码,从而导致其严谨性松泛而产生非常多的BUG,就算为了不发生BUG而完善代码,这也是一项很大的工程,非短时间内可以完成的。2如果仅仅只是默许第一个代码或者少数的其他几个类似错误通过识别那将没有任何意义,还不如要求写代码的人更严谨点来的轻松。
作者: qt520    时间: 2016-1-20 08:57
原来如此,学习了
作者: lingdutiaowang    时间: 2016-1-20 19:32
好闲啊,a啊啊啊
作者: 嘉荫    时间: 2016-1-20 20:38
暖暖贴可以吗,顺便张张姿势




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2