if式のthen部での変数宣言を見てみます。例えば、下記のようなプログ ラムがあった場合、
if (x < 20)
var a = 50 ;
変数 aが定義されるかどうかは、x の値に依存します。x が20より小さい場合 には、変数宣言式が実行され、変数 a が存在するようになりますが、そうで ない時には、変数 a は存在しません。
このような、変則的な変数/関数宣言はプログラムのメンテナンス性をかなり
悪くするので、あまり使用しないほうがよいでしょう。Cmm でこのような仕様
を定義しているには、関数の可変引数の利用をしやすくするためです。(可変
引数についての詳細は、「可変引数サポート - 特殊演算子」
(7.7.2節,頁)に記してありま
す。
なお、次節に記すように、then部がブロック式の場合は状況が異なります。