无限循环辅助

时间:2015-11-30 18:21:23

标签: java networking

我正在学习Java Core中的网络编程。这是我无法理解的。看一下这个片段

enter image description here

这个循环似乎是无限的。但我确定知道它可以停止(不是退出程序)

我的问题是,在没有现有程序的情况下,此循环将停止的情况。我怀疑在这个循环体中会有一个语句引发一个异常,或者某种方式,循环体内的一个语句会产生一个BREAK语句。我怎样才能在循环退出时获得这个?

3 个答案:

答案 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;
}