「Java/基礎/反復処理」の版間の差分

削除された内容 追加された内容
284 行
=== ファイルの読み込みの例 ===
while文はfor文よりも機能が少なく、シンプルな構造です。
一般に、ループカウンタが不要な反復処理などケースで使われることが多いかもと言えるでれませんょう
 
たとえば、次の例は、引数で指定されたテキストファイルを読み込んで表示するサンプルです。
305 行
 
 
<div style="padding: 10px; background-color: rgb(244, 240, 240); font-size: small;"><b>参考:「<tt>(line = in.readLine()) != null</tt>」のような書き方について</b>
上記のサンプルでは、while文の反復条件が「<tt>(line = in.readLine()) != null</tt>」と書かれています。
これは代入演算と比較演算を同時に行う書き方で、こうした類の処理によく使われるパターンですが、慣れない内は奇異に見えるかもしれません。
 
なぜこうした書き方が可能なのかというと、代入演算の式は、その式で代入結果の値を返すからです。
もっとも、上記の処理もfor文を使ってたとえば
念のため、処理の流れを追ってみましょう。
 
まず括弧内の処理、つまり「<tt>line = in.readLine()</tt>」が実行されます。この式は、変数<tt>line</tt>に代入された値を返します。要するに、全体で<tt>line</tt>が返されると考えてよいでしょう。
 
続いて、比較演算が行われます。括弧内を<tt>line</tt>に置き換えるとわかりよいでしょう。つまり「<tt>line != null</tt>」という判定が行われることになります。
</div>
 
 
<div style="padding: 10px; background-color: rgb(244, 240, 240); font-size: small;"><b>参考:for文で書いた場合</b>
 
もっとも、上記の処理もサンプルは、for文を使ってたとえば
 
import java.io.*;