C
C言語
if文

C言語にif~elseif~else構文なんて無かったことに今更ながら気が付いた件

お恥ずかしながら

普段、コードを書く上でC言語の条件分岐で出てくるelse ifはRubyでいうところのelsifと同じととらえても問題になることが無かったため、6年以上C言語(とC++)を書きながら、今更else ifの意味を理解しました。

本題

始まりは中括弧の省略

if(条件式) {
    then;
} else {
    else;
}

という文はelse節の内容が1行だったら、中括弧を省略して

if(条件式) {
    then;
} else else;

って書けますよね。

要は

if(hoge == piyo){
    fuga = 1;
}else{
    fuga = 2;
}

if(hoge == piyo){
    fuga = 1;
}else fuga = 2;

って書けるってことです。

ということは…

if(条件式) {
    then;
} else {
    if(条件式) {
        then;
    } else {
        else;
    }
}

if(条件式) {
    then;
} else if(条件式) {
        then;
    } else {
        else;
    }

と書けることになります。

インデントを調整すれば

if(条件式) {
    then;
} else if(条件式) {
    then;
} else {
    else;
}

というおなじみの形になりますね。

雑なまとめ

C言語ってifとelseしかなかったんだ、へ~。わざとインデントをつけないことで逆に見やすくなってて面白いなー。