ループで効率的に
ここで問題です。前回ご紹介した次のプログラム、もっと短く記述することができます。どう変更すればよいでしょうか?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package step07; public class Array1 { public static void main(String[] args) { //整理券用の配列 String[] ticket = new String[5]; int[] j = new int[5]; //整理券を配る(変数に名前を格納) ticket[0] = "山田"; ticket[1] = "鈴木"; ticket[2] = "佐藤"; ticket[3] = "加藤"; ticket[4] = "吉田"; //時間がきたので整理券順に呼び出す。 System.out.println(ticket[0]+"さん。窓口に来てください。"); System.out.println(ticket[1]+"さん。窓口に来てください。"); System.out.println(ticket[2]+"さん。窓口に来てください。"); System.out.println(ticket[3]+"さん。窓口に来てください。"); System.out.println(ticket[4]+"さん。窓口に来てください。"); } } |
正解例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package step07; public class Array1 { public static void main(String[] args) { //整理券用の配列 String[] ticket = new String[5]; int[] j = new int[5]; //整理券を配る(変数に名前を格納) ticket[0] = "山田"; ticket[1] = "鈴木"; ticket[2] = "佐藤"; ticket[3] = "加藤"; ticket[4] = "吉田"; //時間がきたので整理券順に呼び出す。 for(int i=0;i<5;i=i+1) { System.out.println(ticket[i]+"さん。窓口に来てください。"); } } } |
表示命令の「System.out.println」が5行から1行になりました。これは19行目~21行目でループ(繰り返し処理)を利用し実現しています。
19 20 21 |
for(int i=0;i<5;i=i+1) { System.out.println(ticket[i]+"さん。窓口に来てください。"); } |
ループ命令で5回処理が実行されます。それと同時に変数iが0~4まで1ずつ増えていきます。この変数iを利用して配列の番号(ticket[i])としています。
配列とループ処理を組み合わせると効率的にプログラムを作ることができます。ループの条件等を変更しながら動きを確認してみてください。