LoginSignup
5
1

More than 5 years have passed since last update.

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

Posted at

お恥ずかしながら

普段、コードを書く上で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しかなかったんだ、へ~。わざとインデントをつけないことで逆に見やすくなってて面白いなー。

5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1