はじめに
「プロになるJava
―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書」でelse ifに関して興味深い文章が書いてあったので調べました。
実際には特別な構文があるわけではなく、else句のあとに新たにif文をつなげているだけです。
if-elseラダーとは
if-else if-elseの構造をとりelse ifを含むif文を言います。
この構造は条件を絞り込むときに有用です。
また、条件が真(true)になった時点で処理がスキップされます。
ここで疑問発生
特別な構文でないのならば、なぜその後の処理をスキップできるのか
if-elseの後にif-elseをつなぐと条件分岐が2回起きるのではないかと考えました。
私は、else ifでなぜスキップができるのかわからなくなってしまいました。
Geminiに聞いてみた
「else if」は、厳密に言えば独立した特別な構文というよりは、「else」ブロックの中に別の「if」文をネスト(入れ子)にした構文の略記法、または慣用句と捉えることができます。
ここでelse ifの表現がif文のネスト(入れ子)を表現しているという新たな発想に気づきました。
また、else ifのようにif文のネストを略記するものをシンタックスシュガーということも知りました。
シンタックスシュガー(糖衣構文)とは
シンタックスシュガー(syntax sugar)とは、プログラミング言語で、ある構文を別の記法で記述できるようにしたもの。長い構文を簡略に記述できるようにしたり、複雑な構文を読み書きしやくするために用意される。
アロー関数もシンタックスシュガーの一種といえますね。
まとめ
else ifは構文ではなく略記の一種(シンタックスシュガー)でした。
さいごに
else ifのことをすでに知っているような気でいましたが新しい発見があり調べてよかったです。
また、シンタックスシュガーという概念にも触れられてよかったです。