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