タイトルの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]); } } } }