中括弧省略の弊害
可読性を落とすと思われるif文の中括弧省略についてです。
Javaにおいてif文の中括弧を省略した場合、その次の1文だけが対象となります。
if ( 式 ) a = 1; // 式が真の場合実行 b = 2; //必ず実行
上記程度であれば第3者でも判断できるのですが、次の場合はどうでしょう?
if ( 式 ) a = 1; //式が真の場合実行 else b = 1; //式が偽の場合実行 c = 1; //必ず実行
c=1が必ず実行されるのが、正しい仕様なのかバグなのかの判断に困ると思います。
上記は実際の保守において経験があるのですが、調査の結果「c=1;」を第3者が手を加えたデグレであることが判明しました。
直接バグを織り込んだのは「c=1;」を加えた人になると思いますが、ファーストコーディングの段階で中括弧を書いていれば起きなかったデグレだと思います。
中括弧の省略は現実的にあまりメリットを感じないのですが(2文字タイプが減る程度)、Javaの言語仕様から外すことはできないものなんですかね?