2

これは私にはまったく意味がありません。

これは私のコードです:

boolean that = false;
        if (that == true);
        {
            System.out.println("That is " + that);
        }

それでも、私の出力は

That is false

私はこれをJavaで行っており、Eclipse galileoを使用しているので、プログラムをコンパイル/実行するたびにプログラムが保存されるため、コンパイラーはプログラムの更新バージョンを取得する必要があります。どうしたの?

4

5 に答える 5

8

よくある間違い。ステートメント;の最後にあるを削除します。if

ところで、角かっこを使用し、IDEのコードフォーマッタを使用する場合は、常に次のように記述します。

    if (that == true) {
        System.out.println("That is " + that);
    }

これは、置き忘れた場合、;または{それがより明白になる可能性がある場合を意味します。

于 2012-04-29T16:01:20.840 に答える
3

これは、ここにあるセミコロンが原因です。

 if (that == true);

そのセミコロンを削除してください!条件をチェックした後、コードは何もしません(that == true)-技術的には「空のステートメント」です-つまり、次のようなループを作成できます。

    for (int i = 0; ; i++){
      System.out.println("Thanks" );
    }

そしてそれは永遠に続くでしょう!

于 2012-04-29T16:01:30.327 に答える
3

;を削除します

boolean that = false;
     if (that == true)
     {
         System.out.println("That is " + that);
     }

それ以外の場合、印刷は常に実行されます。

于 2012-04-29T16:02:01.470 に答える
2

このようにしてみてください:

    boolean that = false;
    if (that)
    {
        System.out.println("That is " + that);
    }

ifコード内のの後に余分なセミコロンがあることに注意してください。それが理由です。

論理テストはセミコロンで閉じられ、次のブロックが常に実行されます。

セミコロンを削除すると、直感に一致します。

于 2012-04-29T16:00:59.737 に答える
2
if (that == true);
              // ^ The extra colon you dont need
于 2012-04-29T16:02:57.910 に答える