4

我正在阅读有关如何对网络套接字进行编程的信息并遇到了这段代码:

try {     
   while (true) {   // This is the line in question
     int i = in.read(  );
     if (i == -1) break;
     System.out.write(i);
   }
 }
 catch (SocketException e) {
   // output thread closed the socket
 }
 catch (IOException e) {
   System.err.println(e);
 }

第二行如何知道何时失败?换句话说,while(true)循环是如何工作的?我想我不明白“虽然什么是真的?”

4

2 回答 2

7

这里重要的一行是:

if (i == -1) break;

时将break退出当前循环i == -1。如果没有这条线,那将是一个无限循环。

于 2013-06-08T01:08:54.650 回答
0

沙菲克已经说明了这一点。我将添加这while(true)意味着while (true == true)因为 while 循环测试布尔条件。这个特定条件始终为真,并且循环将无限运行,除非您在其中的某处定义breakorreturn条件。

于 2013-06-08T01:34:17.223 回答