qingangli0351
2017-12-07 08:39
采纳率: 100%
浏览 1.2k
已采纳

java,eclipse,为什么for死循环会报红,while死循环不会?

请大神详细指点一下,谢谢,M~~~MU~~~~
代码如下:
int n = 1;
for (;;) {

     }
    System.out.println(n);
System会爆红
而:
    int n = 1;
     while()
         ;
    System.out.println(n);
这个不会
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 战在春秋 2017-12-07 09:13
    已采纳

    while死循环虽然不会在System行报错,但会在while行报错,错误信息为:

    Syntax error on token "(", Expression expected after this token

    如果将while() 修改为while(true),那么两种写法都会在System行报错,且错误信息均为:

    Unreachable code

    至于为什么Eclipse不认为 while()和while(true)是相同的写法,可能要深入到编译器细节,个人觉得似乎也没有深究的必要。

    如果对您有帮助,请点击采纳答案好吗,谢谢~~

    点赞 打赏 评论
  • Amo_lt 2017-12-08 09:54
     for(;;) =  while(true)
    

    你这里while();后面有个分号,那么while就是空循环了,不做任何操作,也就是说没有循环体语句,所以不会死循环.

    点赞 打赏 评论
  • 布衣小哥 2017-12-12 00:31

    while也报啊,while小括号里你不放boolean值那块不报红么?

    点赞 打赏 评论
  • 奥利弗呀 2017-12-17 03:42

    貌似while(true)才是死循环呀

    点赞 打赏 评论

相关推荐