• 締切済み

if文で・・・

booleanの判定するときのif文の書き方ですが、 (1) if( !flg ) then (2) if( flg != true ) then (3) if( flg == false ) then のどれにしますか?

noname#19197
noname#19197
  • Java
  • 回答数7
  • ありがとう数1

みんなの回答

  • Gishi
  • ベストアンサー率57% (11/19)
回答No.7

私の場合は、英語で読んで自然になる書き方を選びます。  if (!flag) は「if not flag」と読めますが、 これだと意味が通じないので  if (flag == false) を選びます。 これなら「if flag is false」と自然に読めます。  boolean isError; のような変数名である場合は、  if (!isError) 「if (it) is not error」を選びます。 英語ネイティブの人が書いた本には、  boolean noData; のような変数名である場合、  if (!noData) だと「if not no data」と二重否定になってしまうので  if (noData) {   // 何もしない  } else {   // ここに処理を書く  } のように書くべきだ、という記事も載ってました。 しかし、 他の方も書かれているように、 会社などでコーディング規約がある場合は、 それに従ったほうがよいでしょう。

回答No.6

追加で booleanが真か偽かを判別する能力があるので flgを利用するのが良いと思います。 命名規則的にはbooleanの名前は isやhasを使うことが推奨されるという記述もあった と思うのですがそれはこういうパターンのときに 使うためだと思います。java的なのはやはり(1)だと 思います。 (2)と(3)はC言語などの名残を感じます。

回答No.5

#1の方と同様、 コーディング規約があれば、 それにしたがって記述します。 ただ、個人的な考え方とすると、 条件文は明示的に書きたい(後々のメンテを楽にするため)ので、 (3)にします。 if( flg == FALSE ){ } とか、 if( flg == TRUE ){ } といった具合です。

回答No.4

私の場合は boolean isFalse; や boolean isTrue = true; のように宣言して isFalseを使う場合は if( !isFalse ) if( isFalse ) isTrueを使う場合は if( isTrue ) if( !isTrue ) のように見てすぐわかるようにしています

  • Ikonos00
  • ベストアンサー率28% (86/302)
回答No.3

訂正です。 if( flg ) thenが選択肢になかったもので…。 #2さんと私も同じで、基本的に!は好きじゃないです。 宣言時flgの初期値をfalse ↓ flgを立てる立てないの条件式 ↓ if( flg ) then ですね。 (1)~(3)で選べといわれたら、(1)です。

回答No.2

(3)ですかね。 なんかIFで否定を使うの好きじゃないんで。。 それと、#1の方と一緒で、 規約がある場合は従います。

  • Ikonos00
  • ベストアンサー率28% (86/302)
回答No.1

私の場合は、とりあえず、宣言時にflgに初期値を入れといて、(1)ですかね。 もし、仕事で、コーディングのときに、 if文はこう書けって規約があれば、それに従います。

関連するQ&A

  • アクセスvba if文の記述方法

    検索フォームを作成しました。 入力項目は「氏名」「カナ」で入力チェックをおこなっております。 (未入力)メッセージを表示「未入力です」 (入力有)結果一覧のフォームを表示 未入力チェックは正常に処理されておりメッセージが表示されます。 項目に値を入力した場合フォームが起動しません。 if文から外した場合は正常に実行されます。 この条件の場合if文でどのように記述したらよいのでしょうか。 宜しくお願いします。 Private Sub 検索_Click() Dim mct As Control Dim flg As Boolean flg = False For Each mct In Me.Controls  If mct.ControlType = acTextBox Then   If mct.Tag = "Check" Then    If Not IsNull(mct) Then     flg = True     Exit Sub    End If   End If  End If Next mct If flg = True Then  Dim str As String  str = "[氏名] Like ""*" & Me!氏名 & "*"" And [カナ] Like ""*" & Me!カナ & "*"""  DoCmd.OpenForm "結果一覧", , , str Else  MsgBox ("未入力です") End If End Sub

  • if文について

    cshで書いています。 if文がとおりません。。。 0: Event not found. このようなメッセージが出力されます。 if ($flg == "xxx") then echo "aaa" else if($flg == "yyy") then echo "bbb" exit else echo "ccc" exit endif 内容は上記のような感じです。 どなたか教えて下さい。

  • if文からcase文への置き換え

    ピクチャボックスをクリックしたら、チェック ボックスがチェックされるメソッドを作りたいと 思っています。 Private Sub PictureBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click,PictureBox2.Click 'ここから If sender Is PictureBox1 Then If Me.CheckBox1.Checked = False Then Me.CheckBox1.Checked = True Else Me.CheckBox1.Checked = False End If ElseIf sender Is PictureBox2 Then If Me.CheckBox2.Checked = False Then Me.CheckBox2.Checked = True Else Me.CheckBox2.Checked = False End If End If 'ここまで End Sub 上記のif文をCase文に置き換えたくて、 'ここから Select Case sender Case PictureBox1 If Me.CheckBox1.Checked = False Then Me.CheckBox1.Checked = True Else Me.CheckBox1.Checked = False End If Case PictureBox2 If Me.CheckBox2.Checked = False Then Me.CheckBox2.Checked = True Else Me.CheckBox2.Checked = False End If End Select 'ここまで 上記のように書き換えたのですが、エラーが出てしまいます(ビルドは通るのですが)。 Case文の使い方が間違っているんだとは思いますが、どこがどう 間違っているのがよくわかりません。 ご教授いただけないでしょうか?

  • Javaのif文がわかりません!

    public class If2 {   static boolean b1, b2;   public static void main(String[] args) {     int x = 0;     if ( !b1 ) {     if ( !b2 ) {       b1 = true;       x++;       if ( 5 > 6) {         x++;       }       if ( !b1 ) x = x + 10;       else if ( b2 = true ) x = x + 100;       else if ( b1 | b2 ) x = x + 1000;       }     }     System.out.println(x);    }  } ------------------------------------------------------------ 正常にコンパイルされ、101とでます。 if文の()内にある!b1というのが意味が分かりません^^; 2行目でb1とb2はfalseになるのは分かりましたが !b1や!b2はfalseではない!ということですか? 誰か教えてください!よろしくお願いします!!

  • case文

    こんにちは、SQL初心者です。 値を判定して、trueなら「*」をfalseなら表示なしとするのですが、 判定項目がかなりありまあす。 case文だとtrue、falseで二通り書かないといけないと思うのですが、簡単な方法はありますか? if文みたいにelseを使えればいいのですが。

  • VBA if文の作法

    if a=1 then b=1 end if を if a=1 then b=1 と書けますよね。 しかし、以下のような書き方だとa=1がFALSEでもその次のif b=1 then c=1の判定をしに行きます。なぜこの書き方がいけないのでしょうか? if a=1 then if b=1 then c=1 end if

  • IF文で空白セル

    勘違いしているのかもしれませんが、 エクセルの数式IF文で、TRUEの時に空白(?)を入力するにはどうしたらよいのでしょうか? 今までは、TRUEのところに "" とダブルクオーテーション二つを入力していたのですが、IF文が入っているセル(TRUE)をISBLANKで参照するとFALSEとなります。 ISBLANKで参照したときに、TRUEとするためには、IF文にどういう風に入力すればよいのでしょうか? うまく説明できませんが、ご教授お願いします。

  • &と|の演算子を使ったif文のプログラムについて

    ↓のプログラムの実行結果について質問します。 public class Test{ public static void main(String args[]){ if(methodA() & methodB() ){ System.out.print(1); }else{ System.out.print(2); } if(methodA() | methodB() ){ System.out.print(3); }else{ System.out.print(4); } } private static boolean methodA(){ System.out.print("A"); return false; } private static boolean methodB(){ System.out.print("B"); return true; } } 上記のプログラムを実行すると AB2AB3 と出力されるのですが、 何故こういう風になるのか教えていただけませんか? また、if文の中をそれぞれ if(methodA() & methodB() ) if(methodA() | methodB() ) と書き換えると A2A3 となるのですが、これについてもイマイチよく分かりません。 メソッドからfalseとtrueを戻り値として受け取り 演算子によって処理を分けているんでしょうけど、 どういう流れで処理が行われているのか 出力結果を見ても読めなくて・・・

    • ベストアンサー
    • Java
  • EXCEL2007 VBA IF文について

    プログラム If Sheets("sheet1").Cells(85, 1).Value = Cells(13, 1).Value Then msgBox "true" Else msgBox"false" End If 値 Sheets("sheet1").Cells(85, 1).Value ← 0.38125 Cells(13, 1).Value ← 0.38125 上記のプログラムと値のとき、結果はtrueが表示されると思うのですが、なぜかfalseが表示されてしまいます。なぜ、falseが表示されるのか解りましたら教えてください。 値はウォッチで確認しています。

  • PerlでIF文の条件式をもっとスマートに書きたい

    PerlでIF文の条件式をもっとスマートに書きたいのですが。。。 以下のようなIF文の条件式を上手く書く方法がありますでしょうか? if($flg[0] == 1 || $flg[1] == 1 || $flg[2] == 1 || $flg[3] == 1 || $flg[4] == 1 || $flg[5] == 1 || $flg[6] == 1 || $flg[7] == 1 || $flg[8] == 1 || $flg[9] == 1)){ $flg[i]は配列@flgの各要素です。 上記のように「||」(論理和:または)でつないで書くのではなく、 もっとスマートに書きたいのですが、 何か良い方法はないでしょうか?? ご存じの方がいらっしゃいましたら、どうかご教示ください。 よろしくお願い致します。

専門家に質問してみよう