26.1.4.12 IF形式の注意点

ifの形式はelse部があることで少し注意が必要です.

まず,elseはあくまでもifを受けるものですから,プログラムの文面上であまり離れてしまうのはよくありません.それで,Cを条件とするとき,

if (C) { 
----
----
----
----
----
}else
----;

と書くよりは

if (Cの否定)
-----;
else {
----
----
----
----
----
}

と書くほうが見やくなります.

if形式が二重になっている場合に

外側のifにelse部があり

内側のifにelse部がない

ときは注意が必要です.つまり

if (C1) A else B

という外側のif形式のAが,さらに

if (C2) D

となっている場合です.うっかり

if (C1)

if (C2)

D;

else

B;

と書くと,elseとBは内側のIf形式のelse部と解釈されてしまうのです.これは,プログラムの文面の(コンピュータによる)解析が,文面を左から右へ,上から下へと順に見てゆくだけであることによります.この例ではD;の次に出現するelseは直前のif,すなわち内側のifに対応づけられてしまうのです.

意図した意味どおりにするには,内側のif形式をナミカッコで囲んでやります.

if (C1) {

if (C2)

D;

} else

B;