minimize

単文のifブロック

ifブロックは通常括弧 { } で囲む必要がありますが、
ブロック内が単文であった場合にはそれを省略することができます。

if (b) ++i;

しかし、このように記述すると以下のようなミスをする恐れがあります。

if (b) ++i; ++j;

一見、bが真のときに ++i と ++j が実行されるように見えますが
実際には bが真のときに ++i が実行され、常に ++j が実行されてしまいます。
つまり、以下の文と同じです。

if (b) ++i;
++j;

Javaでは改行文字は構文上特別な意味を持ちません。

こういった間違いを無くす為に、たとえ単文であっても括弧は付けるようにします。

if (b) { ++i; }

こうすれば、後で ++j を追加するときに間違える可能性はぐっと減ります。

if (b) { ++i; ++j; }

保守性を高めるとはつまり、こういう事です。

PMD : IfStmtsMustUseBraces
CheckStyle : NeedBraces

その他の単文ブロック

これらも全て 単文のifブロック と同様です。
面倒と思うかもしれませんが、必ず括弧で括りましょう。

CheckStyle : NeedBraces
PMD : WhileLoopsMustUseBraces / IfElseStmtsMustUseBraces / ForLoopsMustUseBraces

ブロックのネスト

以下のようなコードがあります。

int i;
{
  int v;
  ...
}
{
  int v;
  ...
}

こういったコードは記述可能ですが、あまり好ましくありません。
メソッド化するなどの対処をしましょう。

CheckStyle : AvoidNestedBlocks

括弧を記述する位置

括弧を記述する位置は、大きく分けて2つの流派があります。

// Type 1 -- おそらく最も一般的な記述
void bar() {
}

// Type 2 -- C言語ではこっちのが主流?現在でも使われている
void bar()
{
}

どちらを使うかは自由ですが、どちらかに統一してプロジェクトを進めた方が良いでしょう。

CheckStyle : LeftCurly / RightCurly

[コメント(0)]