Java 2 SDK 開発ガイド (Solaris 編)

内部の不変条件

一般的には、プログラムの動作に関する重要な前提を示す短いアサーションを頻繁に使用することが適切です。

アサーション機能が存在しなければ、多くのプログラマは次のようなコメントを使用します。


 if (i%3 == 0) {
        ...
    } else if (i%3 == 1) {
        ...
    } else { // (i%3 == 2)
        ...
    }

このように不変条件を表明している部分がコードに存在する場合、assert に変更するべきです。上記例の場合、assert が if-else 文の else 節を保護するには次のように変更します。


if (i % 3 == 0) {
        ...
    } else if (i%3 == 1) {
        ...
    } else {
        assert i%3 == 2;
        ...
    }

i が負の場合、% 演算子は真の mod 演算子ではないため上記例のアサーションは失敗しますが、残りの計算は続けられ、その結果は負になります。