我正在学习Java Core中的网络编程。这是我无法理解的。看一下这个片段
这个循环似乎是无限的。但我确定知道它可以停止(不是退出程序)
我的问题是,在没有现有程序的情况下,此循环将停止的情况。我怀疑在这个循环体中会有一个语句引发一个异常,或者某种方式,循环体内的一个语句会产生一个BREAK语句。我怎样才能在循环退出时获得这个?
答案 0 :(得分:2)
循环表达式中应该有一个破坏条件
while(true) // is an end less loop unless you have break inside it.
你能做的是
while(true) {
break;
// it will exit the loop when it hits that statement.
// break can be used inside an if too.
}
通常,您应该将while(true)
修改为while(condition_which_will_break_this_loop)
。开始阅读this以便更好地理解。
答案 1 :(得分:0)
你应该有明确的休息条件。循环可能停止的另一种方法是,如果任何方法调用
outputToClient.writeDouble(area);
jta.append(...)
jta.append(...)
抛出异常
答案 2 :(得分:-1)
Here是关于java中循环如何工作的一些文档。在线:
while(true)
此条件永远不会等于false。
while语句计算表达式,该表达式必须返回一个布尔值。如果表达式的计算结果为true,则while语句将执行while块中的语句。 while语句继续测试表达式并执行其块,直到表达式求值为false。
所以你的循环永远不会终止。您可以像这样更改此条件
boolean done = false;
while(!done){
if(condition is met)
done = true;
}
另一种方法是在你的循环中添加一个break语句,虽然它的实践往往更加不受欢迎,因为它与条件终止相关仍然有效。
while(true){
if(condition is met)
break;
}