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);
 }

2 行目は、いつ失敗するかをどのように知るのでしょうか? while(true)つまり、ループはどのように機能するのでしょうか。何が本当なの?

4

2 に答える 2

7

ここで重要な行は次のとおりです。

if (i == -1) break;

はのbreak時点で現在のループを終了しますi == -1。この行がないと、無限ループになります。

于 2013-06-08T01:08:54.650 に答える
0

Shafikは要点を語った。while ループはブール条件をテストするため、そのwhile(true)意味を追加します。while (true == true)この特定の条件は常に true であり、breakまたはreturn条件をどこかに定義しない限り、ループは無限に実行されます。

于 2013-06-08T01:34:17.223 に答える