一段时间后无法达到的声明

时间:2016-11-12 14:09:01

标签: java while-loop

我只是在修改代码,我在以下代码中遇到错误:

    int x=1;
    System.out.println("x "+x);
    while (true)    {
        x++;
    }
    System.out.println ("x "+x);

错误在最后一行。我能知道错误(错误:无法访问的语句)的含义吗?

另外,我如何修改代码,使得x的值在内部增加,而循环不会改变全局值,还有哪些修改会改变全局值?

2 个答案:

答案 0 :(得分:0)

while循环

while(true)

将永远运行(条件永远不会false),因此后面的代码永远不会被执行。

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

while (true){
    x++;
    System.out.println ("x "+x);
}

答案 1 :(得分:0)

  

我能知道错误(错误:无法访问的语句)的含义吗?

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

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

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

这就是您的情况,您的代码x++;永远运行,永远不会出现while循环。

(2)在此之后抛出异常时,代码语句将不会执行,如下所示:

public R method() {
  //some code
  throw new MyException(" Exception is ... ");
  //from here code is unreachable
}

(3)使用明确的return声明

public R method() {
      //some code
      return r;
      //from here code is unreachable
    }