这个while循环如何知道何时失败?

时间:2013-06-08 01:07:28

标签: java while-loop

我正在阅读有关如何编程网络套接字并浏览这段代码的信息:

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)循环如何工作?我想我不明白'虽然这是真的吗?'

2 个答案:

答案 0 :(得分:7)

这里重要的一点是:

if (i == -1) break;

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

答案 1 :(得分:0)

Shafik说明了这一点。我将添加while(true)表示while (true == true),因为while循环测试一个布尔条件。除非您在其中的某处定义breakreturn条件,否则此特定条件始终为true且循环将无限运行。