1

Java で次のコードを実行すると、この問題が発生しました。

public class comparison
{
    public static boolean main(String[] args)
    {
        if (0.1 + 0.1 + 0.1 == 0.3) return true;
        else return false;
    }
}

コードを変更する理由と方法を教えてもらえますか?

4

2 に答える 2

3

mainメソッドは次のようにする必要があります。

public static void main(String[] args)

ではない:

public static boolean main(String[] args)

あなたはおそらく次のようなことをしたいと思っていました:

 public static boolean check() 
 {
     if (0.1 + 0.1 + 0.1 == 0.3) return true;
        else return false;
 }

次に、静的 mainから呼び出します。

public static void main(String[] args)
{
    boolean result = check();
    //now you can print, pass it to another method.. etc..
}

main が void である (何も返さない) のはなぜですか?

  • 考えてみてください。main メソッドが終了しても、プログラムが終了したわけではありません。新しいスレッドが生成された場合、これらのスレッドがまだ実行されている可能性があります。

main が公開されているのはなぜですか?

  • mainメソッドは、プロジェクトの範囲外のメソッドを実行するために JVM によって呼び出されます。

メインが静的なのはなぜですか?

  • JVM がメイン メソッドを呼び出すとき、呼び出されるクラスのオブジェクトは存在しません。したがって、クラスからこれを許可するには静的メソッドが必要です。
于 2013-03-30T21:13:33.240 に答える
0

コマンドラインから実行可能にするには、Java クラスは署名付きの静的メソッドを実装する必要があります

public static void main(String[] args) {

あなたのものは「void」ではなく「boolean」を返すため、JVMはそれを実行する方法を知りません。そのメソッドを変更するか、戻り値の型が「void」の別の同様のメソッドでラップする必要があります。

于 2013-03-30T21:14:55.060 に答える