あらきけいすけの雑記帳

2016-12-06 (Tue)

else if はC言語の仕様には存在しない

授業のための自分用の覚書。Cの文法の仕様*1には if ... else if ... という文法事項は書かれていない。

if ( [expression] ) [statement] else [statement]
しか明記されていない。ついでに言うとコードを書くときのお作法の波括弧*2も無い。else if が使える理由は if ( [expression] ) [statement] else [statement] の全体が一つの [statement] であるので、else の後の [statement] に代入できてしまうのである。制御文のコーディングの標準のお作法からするとチート書法である。

if        ( A ) {
} else if ( B ) {
} else if ( C ) {
} else {
}

*1:PDF資料:http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf の 6.8.4 Selection statements

*2:例えば IPA 組込みソフトウェア開発向けコーディング作法ガイド[C言語版] http://www.ipa.go.jp/files/000005123.pdf の p.75

トラックバック - http://d.hatena.ne.jp/arakik10/20161206/p1