Java while之后不可到达的语句

Java while之后不可到达的语句,java,while-loop,Java,While Loop,我正在修改代码,但在以下代码中出现错误: int x=1; System.out.println("x "+x); while (true) { x++; } System.out.println ("x "+x); 错误在最后一行。我能知道这个错误(错误:无法到达的语句)是什么意思吗 另外,我如何修改代码,使while循环内增加的x值不会改变全局值,以及什么修改会改变全局值?while循环 while(true) 将永远运行(条

我正在修改代码,但在以下代码中出现错误:

    int x=1;
    System.out.println("x "+x);
    while (true)    {
        x++;
    }
    System.out.println ("x "+x);
错误在最后一行。我能知道这个错误(错误:无法到达的语句)是什么意思吗


另外,我如何修改代码,使while循环内增加的x值不会改变全局值,以及什么修改会改变全局值?

while循环

while(true)
将永远运行(条件永远不会
false
),因此它之后的代码将永远不会执行

要解决此问题,请将打印放入循环:

while (true){
    x++;
    System.out.println ("x "+x);
}
我能知道这个错误(错误:无法到达的语句)是什么意思吗

这意味着编写的代码没有用处,因为它不会被执行,因为前一行的(代码)语句永远不会从方法中出现或返回,这种情况发生在以下场景中:

(1)无限循环或迭代(如
while(true)
for(;;)

public R method() {
  while(true) { //infinite loop
    //some code
  }
  //from here the below code will never get executed
}
这就是您的案例和代码
x++
永远运行,并且在循环期间从不退出
循环。

public R method() {
  while(true) { //infinite loop
    //some code
  }
  //from here the below code will never get executed
}
(2)之后抛出异常时,代码语句将不会执行,如下所示:

public R method() {
  while(true) { //infinite loop
    //some code
  }
  //from here the below code will never get executed
}
public R method() {
  //some code
  throw new MyException(" Exception is ... ");
  //from here code is unreachable
}
(3)使用显式
返回
语句

public R method() {
  while(true) { //infinite loop
    //some code
  }
  //from here the below code will never get executed
}
public R method() {
      //some code
      return r;
      //from here code is unreachable
    }

while(true)
应该在什么时候结束?请仔细阅读您自己的代码。那个循环的目的是什么?“冻结”程序吗?@Tom是的,我错过了那部分。在跳到这里问问题之前,你应该先学习编程逻辑的基础知识。而且,这样的问题已经存在了。例如,看看我上面的评论,谢谢。。是的,我忘了考虑循环。成功了。“我希望我有15个以上的声望,这样我就可以投你一票了。”阿什什希勒斯塔如果你接受这个答案,就把它标记为接受。(您可以按答案分数下的V符号)Downvoter,请详细说明…谢谢。无止境循环是罪魁祸首。是的,还请记住,在其他情况下,您将获得上述无法访问的语句