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,请详细说明…谢谢。无止境循环是罪魁祸首。是的,还请记住,在其他情况下,您将获得上述无法访问的语句