-2

現在作成中のゲームなので、すべてのコードを追加したくありません。とにかく、class_Selection と Characterclass を宣言しました。ユーザーは、class_Selection の文字列を入力します。結果を表示してから、同じ入力を使用してその後の処理を決定する if ステートメントに進みます。私はJavaが初めてで、そのためのコーディングを行っています。これが私の最初のプロジェクトです。問題はおそらく単純です。ご覧のとおり、ユーザーがどのように入力してもすべて大文字の場合、次のようなキーを受け入れると聞いたので、すべて大文字で配置しました。MeLeE、それは正しくない可能性があります。結果は、プログラムの残りの部分を通過するときに生成され、class_Selection の結果も正しく表示されますが、if ステートメントに到達すると null が表示されます。

編集 問題はどういうわけか文字クラスがnullに等しいため、 System.out.println(Characterclass); の場合です。null を受信して​​います。

== を修正しました。ありがとうございましたが、CharacterClass を何らかの方法で修正して null にする必要があります。

編集問題は、IFステートメントで、すべて大文字で答えたのですが、おそらくそれを行う方法があることはわかっていますが、正しく実行していませんでした。MELEEのように右キーを入力すると、MELEEと入力すると結果が表示されます。また、 system.out.println(Characterclass); を実行したときも思います。、それを実行する方法がなかったので、修正します。ボーナスを表示するようにしました。

== 問題をありがとう、私は私の目標にさらに一歩進んでいます。

// クラスの選択

    System.out.println("Which one did you excel in ( Class )? Melee, Magic, or Archery?"); // Class selection
    String class_Selection; // Hold the class name (make method with this to declare bonuses and things that have to do with the class he chose: such as If ( class_Selection == melee) 
    class_Selection = classSelection.next(); // User enters name of class they want
    System.out.println("You entered: " + class_Selection + (" Is this the class you want?, y or n?"));

    String yOrN;
    yOrN = defaultScanner.next();

    if (yOrN == "n") { // redo if selection is no
        System.out.println("Then which class would you like? Melee, Magic, Archery?");
        class_Selection = classSelection.next();
        System.out.println("You entered: " + class_Selection + (" Is this the class you want?, y or n?"));
        yOrN = defaultScanner.next();


    }else{ // Does nothing if y because the selection is correct
    }

    // Continue after class selection


        System.out.println("Your class is: " + class_Selection); // Final display
        System.out.println("\n");


        // This is where your selection takes effect and displays your bonuses

        if (class_Selection == "MELEE") {
            Characterclass = "melee";
            System.out.println("Melee = +5 Blade, +5 Blunt, +5 Hand-To-Hand, +5 Heavy Armor,");

        }
        if (class_Selection == "ARCHERY") {
            Characterclass = "Archery";
            System.out.println("+10 Archery, + 10 Light Armor");

        }
        if (class_Selection == "MAGIC") {
            Characterclass = "Magic";
            System.out.println(" +10 Arcane, +5 Light Armor");


}
        System.out.println(Characterclass);

}   

}

4

5 に答える 5

2

if (yOrN == "n")!!! する必要があります if (yOrN.equals("n")){...}

Object等価チェックには、 を使用する必要がありますObject#equals。オブジェクト参照の等価性チェックには、使用する必要があります==

于 2013-04-14T17:50:28.227 に答える
2

Java で文字列を比較するには、String.equals();を使用します。== 演算子ではありません。例えばyOrN.equals("n")

オペレーターは、2 つの==String が同じ String オブジェクトを参照しているかどうかを確認します。このequals()メソッドは、2 つの String が両方の String 内で同じ文字を持っているかどうかを比較します。

于 2013-04-14T17:50:51.370 に答える
0

.equals()参照を比較する which を使用するのではなく、 を使用して文字列を== 比較します。大文字と小文字を区別しない比較が必要な場合.equalsIgnoreCase()

于 2013-04-14T17:52:24.727 に答える