複雑な判断
自動車免許書は、免許取得から5年以上かつ5年間無事故無違反の場合にゴールド免許書になります。これをプログラムで判断すると次の通りになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<meta charset="UTF-8"> <script type="text/javascript"> var keika = window.prompt("免許取得から何年ですか?"); var mujiko = window.prompt("何年無事故無違反ですか?"); keika = Number(keika); mujiko = Number(mujiko); if( keika >= 5 ){ if(mujiko >= 5){ document.write("ゴールド免許です"); }else{ document.write("あと"+(5-mujiko)+"年無事故無違反で、ゴールド免許です。"); } } </script> |
なにやら複雑ですね。このプログラムをみていきます。
ネスト
10行目の「if」命令のかっこ{の中に、さらに11行目に「if」命令があります。
10 11 12 13 14 15 16 |
if( keika >= 5 ){ if(mujiko >= 5){ document.write("ゴールド免許です"); }else{ document.write("あと"+(mujiko-1)+"年無事故無違反で、ゴールド免許です。"); } } |
このように「if」命令の中に、さらに「if」命令を記述することを「ネスト」と言います。
ネストの動作は、10行目で「免許取得から5年以上」か判断し、さらに11行目で「無事故無違反が5年以上」か判断します。つまり、「免許取得から5年以上かつ無事故無違反が5年以上」の2つの条件をネストを使うと記述できるのです。
今回は2つの条件を記述しましたが、条件を増やしたい場合は10行目の「if」の中(11行目)に、さらに「if」文を記述していくことで実現します。判断したい条件の数に合わせてネストを利用してみてください。
「if」命令で複雑な判断ができるようになりました。プログラムを自由に改造しながら体感してください。また、次の「チャレンジ」にも挑戦してみてください。