Java 无限while循环辅助

Java 无限while循环辅助,java,networking,Java,Networking,我正在学习Java核心的网络编程。有件事我不明白。看看这个片段 这个循环似乎是无限的。但我确信它可以停止(不是退出程序) 我的问题是,在没有现有程序的情况下,这个循环会在哪些情况下停止。我怀疑这个循环体中是否有引发异常的语句,或者循环体中的某个语句是否会生成BREAK语句。如何使while循环退出?在循环表达式中应该有一个中断条件 while(true) // is an end less loop unless you have break inside it. 你能做的就是 while(

我正在学习Java核心的网络编程。有件事我不明白。看看这个片段

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


我的问题是,在没有现有程序的情况下,这个循环会在哪些情况下停止。我怀疑这个循环体中是否有引发异常的语句,或者循环体中的某个语句是否会生成BREAK语句。如何使while循环退出?

在循环表达式中应该有一个中断条件

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(将打破此循环的条件)
。开始阅读,让您更好地理解。

您应该有一个明确的中断条件。循环停止的另一种方式是,如果有任何方法调用

outputToClient.writeDouble(area);

jta.append(...)
jta.append(...)
抛出异常

是一些关于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;
}

您希望停止条件是什么?不要将文本/代码发布为图像:“我确实知道它可能会停止”是什么意思?您的示例中的循环永远不会停止,除非其中一个方法调用引发异常,或者该进程被其他进程终止。如果您询问如何使其停止,如果我们知道你希望它停止的情况,那会有帮助的。你为什么想让它停下来?看起来,如果客户端断开连接,这可能是一个很好的原因。如果客户端已断开连接,
inputFromClient.readDouble()
会做什么?如果它抛出一个异常,那么您可能需要在循环之外为该异常编写一个处理程序。@jamesu点击,谢谢!