Javaソースコードにおいて、if文で肯定的な条件分岐を優先する書き方
Javaソースコードにおけるif文の条件分岐を、ちょっとでもわかりやすく記述したいです。
Javaソースコードのif文において、肯定的な条件分岐を優先する書き方があります。
肯定的な条件が成り立つ場合、セミコロン(;)だけを記述する書き方です。
if (肯定的な条件) {
; //処理を続けます
}
else{
//その他の場合の処理をします
}
if文の条件分岐を「~である」と肯定文で書くために、「; セミコロン」を使っています。
プログラム処理がわかりやすい、if文において肯定文で条件を書く事
Javaソースコードのif文の条件指定において、
肯定文で条件を書く方がプログラム処理がわかりやすい、と思います。
その場合、肯定的な条件を優先する書き方があります。
「if文で、肯定的な条件分岐を優先する書き方」の例
以下にif文において、「肯定的な条件分岐を優先する書き方」について、例を示します。
プログラムの詳細を理解する必要は、ありません。
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
ActionErrors errors = new ActionErrors();
if (super.action.equals("copy")){
;
}
else{
super.servlet.log("無効なアクション=" + action);
return errors;
}
....
}
if文で、肯定文で条件を書いています。
「action変数が、文字列"copy"と同じであるなら」と、書いています。
その「肯定的な条件」が成り立つ場合、
「; セミコロンだけ」、つまり何もせず処理を続ける、と書いています。
if文の条件で「同じである」という肯定的な書き方を、優先しています。
そしてif文の条件を肯定文にしたかったから、「; セミコロン」を使っています。

if文で、否定的な条件分岐の書き方
ちなみに次のように、if文の条件分岐を「否定文」を使って、書くこともできます。
if (super.action.equals("copy") == false){
super.servlet.log("無効なアクション=" + action);
return errors;
}
この場合は、
「action変数が、文字列"copy"と同じでないなら」という書き方になります。
条件が否定文の場合は、
if ( ... == false) の「== false」を、省略できません。
※ここでは、否定の等価比較演算子「!」の使用を考えていません。
falseの否定は(否定の否定は)わかりにくい、と考えています。
if文の条件が2個以上ある時も、肯定文で書いてみましょう
if文の条件が2個以上ある時でも、
「~である、かつ、~である」という肯定文で条件分岐を理解したいなら、肯定的な条件を書いてみましょう。
if文の条件が2個以上ある時の例。
//aか1である、かつ、bが2である、かつ、cが3であるなら
if (a == 1 && b == 2 && c == 3){
//処理を続けます
;
}
//そうでないなら
else{
//処理を中止します
return;
}
if文の条件で、== trueを省略できます
ちょっとしたことですが、if文の条件を肯定的な条件にすると、if文の条件で、== trueを省略できます。
if文の条件で、== trueを省略する例。
if (action.equals("copy") == true) を、
if (action.equals("copy")) と、書けます。
※ここまでの記事は、2004年7月当時の記事になります。
可読性や保守性が高まる、if文で肯定的な条件を書くこと
次の事を意識したい場合、優先的に「肯定文で条件分岐」を書くようにしてみましょう。
プログラム処理の文脈を、肯定文で理解したい。
「~であるなら、~する」と理解したい。
一般的に言うと、
if文で肯定的な条件を指定する方が、ソースコードの可読性や保守性が高まります。
If文の条件式では、論理演算子や比較演算子を複雑に組み合わせて、条件指定することもできます。
ですが条件式を簡単に表せるなら、そうする方が良いです。
if文のソースコードの可読性が高まるからです。
否定の等価比較演算子「!」を、使わないようにしましょう
例えば、以下のようなコードでは、
!を使って否定的な条件指定をしています。
if (! isValid) {
// エラー処理
}
このコードは、isValidが偽の場合にエラー処理をする、という意味になります。
ですが、!を使うことで、読み手が「否定的な条件」を理解するために、余計な負担をかけています。
一般的に、肯定的な条件を理解する方が、読み手の負担は軽いです。
肯定的な条件を優先する書き方は、以下のようになります。
if (isValid) {
;
}
else {
// エラー処理
}
多くの場合で、肯定的な条件指定を書くとは、否定演算子である!を使わずに条件式を書くことです。
!を使って条件式を書く際、本当に!を使う必要があるか、検討してください。
検討した上で、!を使って条件式を書く必要があると判断した場合は、それで良いと思います。