三流プログラマの戯言

プログラミング初心者が気になったことを書き綴るだけ。主にc#

if文の{}の存在

プログラミング触り始めの頃、if文の{}は欠かさず書いてたけど、if内の命令文が1つなら{}を省略できるわけで、

if (i == 0) a = 10;
else if (i == 1) a = 4;
else a = 5;

と書ける。

ここでちょっとした疑問。
elseとifの間にスペースを入れるわけだけど、else文とif文別々としても見れるんじゃないかなと。
即ち、
 
if (i == 0) a = 10;
else

{

  if (i == 1) a = 4;
  else a = 5;

}

こういうコードに。
ここで{}をのけたらどうなるんだろうと。


if (i == 0) a = 10;
else

if (i == 1) a = 4;
else a = 5;

コレを書いて動かしてみる。elseの後に2文あるわけだから、エラー吐くかなと思ったら思いのほかしっかり動いてくれた。

コンパイラ的に改行があるだけで、きちんとelse ifとして読み取ってるのか、else/ifと分けても問題ないのか。まぁ、おそらく前者かなぁと。

実際にプログラミングするときは最初に書いた書き方でやるだろうけど。