0
Scanner input = new Scanner(System.in);
System.out.println("You are in a small room.");
String op1 = input.nextLine();
    if(op1 == ("look at surroundings" != null || "surroundings" != null || "look at surroundings" !=null || "what does the room look like" != null)) {

}

このエラーで返されます 互換性のないオペランド型 String および boolean 私は非常に経験の浅い Java プログラマーです。私は答えを探しましたが、見つけることができませんでした。

4

6 に答える 6

1

これを試して

Scanner input = new Scanner(System.in);
System.out.println("You are in a small room.");
String op1 = input.nextLine();
    if(op1.equals("look at surroundings") || op1.equals("surroundings") || op1.equals("look at surroundings")||op1.equals("what does the room look like")) {

}
于 2013-10-02T16:32:40.783 に答える
1

背景: 私は3 Kingdoms MUD でプログラミングをしていました。

コマンド ループ処理にこの種のロジックを使用したくないことがすぐにわかるでしょう。実際の作業部分を提供するMap<string, IGameCommand>-の使用を検討することをお勧めします。IGameCommand

使用法は次のようになります。

// might be other things you want in this interface later, as well...
interface IGameCommand
{
    void Invoke(string commandline);
}

if (myMap.containsKey(op1))
{ 
    myMap[op1].Invoke(op1);
}

この方法は非常に読みやすく、コマンドのグローバル ディクショナリを、場所によって追加されたコマンドとマージし、プレーヤーの持ち物をはるかに簡単にマージできます。(はい、これはあなたが思っているよりも Java に少し深く入っています。ここで推奨しているツールを使用する準備ができたら、Java を使い始めていることに気付くでしょう。準備ができたら私が熟考したことについて議論する....あなたはSOに関する人々の質問に答えるでしょう.)

于 2013-10-02T16:44:26.340 に答える
0

私はあなたがこのようなものが欲しいと思います:

if(op1.equals("look at surroundings") || op1.equals("surroundings") || op1.equals("look at surroundings") || op1.equals("what does the room look like")) 
    {
     // your code
     }

文字列の比較は String.equals() または String.equalsIgnoreCase() メソッドを使用して行われることに注意してください。

于 2013-10-02T16:32:53.673 に答える