マニアが好む演算子
C、java、JavaScriptには三項演算子があります。
条件式 ? 式1 : 式2
三項演算子のなかで上のような演算子は条件演算子とも呼ばれ、コンパクトなソースコード、小さな機械コードの実現に貢献します。条件式の値がtrueだった場合に式1を評価した結果を返し、falseだった場合に式2を評価した結果を返します。
var answer = (age >=60) ? 1000 : 1500;
たとえば、映画館の入場料を60歳以上ならば、1000円、そうでない場合は1500円というときに使うことができます。変数answerにはageという年齢を反映した値が設定されます。
利用例と実行結果
『日曜日と土曜日は7時に、それ以外は6時に起きます』と表示する例を4つ示します。実行結果はどれも同じです。
<html>
《三項演算子の威力, 2016-08-18》<BR>
<script type="text/javascript" charset="Shift_JIS">
const week = ["日", "月", "火", "水", "木", "金", "土"];
var wake;
document.write("<BR>課題-1<BR>");
for(var i=0; i<7; ++i){
switch(i){
case 0: wake = 7;
break;
case 1: wake = 6;
break;
case 2: wake = 6;
break;
case 3: wake = 6;
break;
case 4: wake = 6;
break;
case 5: wake = 6;
break;
case 6: wake = 7;
break;
}
document.write(week[i]+"曜日は"+wake+"時に起きます。<BR>");
}
document.write("<BR>課題-2<BR>");
for(var i=0; i<7; ++i){
switch(i){
case 6:
case 0: wake = 7;
break;
case 1:
case 2:
case 3:
case 4:
case 5: wake = 6;
break;
}
document.write(week[i]+"曜日は"+wake+"時に起きます。<BR>");
}
document.write("<BR>課題-3<BR>");
for(var i=0; i<7; ++i){
wake = (i % 6) ? 6: 7;
document.write(week[i]+"曜日は"+wake+"時に起きます。<BR>");
}
document.write("<BR>課題-4<BR>");
const wakeup = [7, 6, 6, 6, 6, 6, 7];
for(var i=0; i<7; ++i){
wake = wakeup[i];
document.write(week[i]+"曜日は"+wake+"時に起きます。<BR>");
}
</script>
</html>
《実行結果》
課題-1
日曜日は7時に起きます。
月曜日は6時に起きます。
火曜日は6時に起きます。
水曜日は6時に起きます。
木曜日は6時に起きます。
金曜日は6時に起きます。
土曜日は7時に起きます。
課題-2
日曜日は7時に起きます。
月曜日は6時に起きます。
火曜日は6時に起きます。
水曜日は6時に起きます。
木曜日は6時に起きます。
金曜日は6時に起きます。
土曜日は7時に起きます。
課題-3
日曜日は7時に起きます。
月曜日は6時に起きます。
火曜日は6時に起きます。
水曜日は6時に起きます。
木曜日は6時に起きます。
金曜日は6時に起きます。
土曜日は7時に起きます。
課題-4
日曜日は7時に起きます。
月曜日は6時に起きます。
火曜日は6時に起きます。
水曜日は6時に起きます。
木曜日は6時に起きます。
金曜日は6時に起きます。
土曜日は7時に起きます。
利用上の総合評価
それぞれの観点から4つの課題を4段階に評価しました。
| 課題番号 | ソースコード行数 | 機械コードサイズ | 拡張性 | 総合点 |
| 1 | × | × | ○ | 5 |
| 2 | △ | △ | ○ | 7 |
| 3 | ◎ | ◎ | △ | 10 |
| 4 | ○ | ○ | ◎ | 10 |
利用する際の決め手
夏休み自由研究では、ソースコード行数を小さくするために、三項演算子を多用しています。三項演算子は見た目が良いのですが、拡張性に乏しいです。拡張性については、課題-4,1,2に軍配が上がります。
それでも、if文による判別よりはコンパクトなプログラミングになり、また他人によるプログラムコードの解析が難しくなるという理由で人気の高い演算子と言えます。