タイトルの3番目まで、「new」と出力するには for 文の i 変数の値が 0 〜 2 の場合「new 」と出力し、3〜 は出力しないようにします。このようにプログラムを分岐したいときは、if 文を使います。
では、このプログラムの動きを見てみましょう。
String[] titles = { ・・・・・};
で、String 型の配列に初期値が設定されます。
次に、titleOut() メソッドが呼び出されると、要素番号が 0 〜 2 の「オカピ新聞」「ランランランド新聞」「Java 新聞」の後ろには、「
new」と付けて出力されます。
ここでもし、for 文の条件式が、 i < 10 となっていたら、このプログラムはどうなるでしょうか?
i が 5 になった時、else の {} の中の処理を行なうことになり、titles[5] となります。要素番号が 5 の値は配列にありません。すると、実行エラーが発生します。(java.lang.ArrayIndexOutOfBoundsException:
5)
慣れるまでは、よく出るエラーなので覚えておきましょう。
public class ListOut {
// 配列に初期値を設定しています。
String[] titles = { "オカピ新聞", "ランランランド新聞",
"Java 新聞", "オカピ新聞",
"ランランランド新聞" };
/**
* 新聞名を配列より 0 〜 4 まで、5つ出力します。
* ただし、3 以下の場合は、new と後ろに出力します。
*/
public void titleOut() {
for (int i = 0; i < 5; i++) {
if (i < 3) {
System.out.println(titles[i] + " new");
} else {
System.out.println(titles[i]);
}
}
}
}