【Favcode】よくあるループをfor文で

大したことではないのですが、ちょっとしたコードの書き方でお気に入りなものってありますよね。
それを今後、【Favcode】タグをつけて一つずつご紹介したいと思います。
 

特にJavaにおけるファイル読み込みで、行ごとに読み込むときは java.io.BufferdReader をよく使います。
こんな風に描くと思います。
 

try (BufferedReader br = new BufferedReader(new FileReader(file))) {
  String str = br.readLine();
  while(str != null){
    System.out.println(str);
    str = br.readLine();
  }
} catch (IOException e) {
    /* blar blar */
}

 
わたしは、ほとんど while文を利用しません。
上記の場合は、こんな風に for文で書いちゃいます。
 

try (BufferedReader br = new BufferedReader(new FileReader(file))) {
  for (String str = br.readLine(); str != null; str = br.readLine()){
    System.out.println(str);
  }
} catch (IOException e) {
    /* blar blar */
}

 
メリットは色々感じています。
変数strみたいな単なるテンポラリみたいな変数ってよく使いたいですけど、ステートメントの外に出しちゃうと名前が重複しちゃうので(使い回すより再定義した方が精神衛生上良い)、上記の書き方だと同一メソッド内で、また使えます。
 
それから、for文の中は繰り返し処理だけを純粋に記載できるので、わかりやすい文になりますし、サブルーチン化も容易になります。
 
意外と、こういう書き方のコードを見たことがないので、紹介してみました。
結構使いやすいですよ。

あわせて読む

コメントを残す