0

次のコードがあり、後で if/else ステートメントでユーザーが入力した入力を使用しようとしています。

String userGuess = JOptionPane.showInputDialog("The first card is " 
    + firstCard + ". Will the next card be higher, lower or equal?");

このコードが含まれている if/else ステートメントの外で、入力された単語、つまり「higher」、「lower」、または「equal」をどのように使用できますか? 彼らの答えが必要なコードは次のとおりです。

if (userGuess == "higher" && nextCard > firstCard)
{
    String userGuess = JOptionPane.showInputDialog(null, "Correct! The current card is a " 
               + nextCard + ". Will the next card be higher, lower or equal?");
    correctGuesses++;
}

編集:助けてくれてありがとう、私はそれを理解しました!

4

3 に答える 3

1

このコードを試してください:

if (userGuess.equalsIgnoreCase("higher") && nextCard > firstCard)
{
    String userGuess = JOptionPane.showInputDialog(null, "Correct! The current card is a " 
           + nextCard + ". Will the next card be higher, lower or equal?");
    correctGuesses++;
}

else if (userGuess.equalsIgnoreCase("higher") && nextCard == firstCard)
{
    String userGuess = JOptionPane.showInputDialog(null, "Correct! The current card is a " 
               + nextCard + ". Will the next card be higher, lower or equal?");
    correctGuesses++;
}

else if (userGuess.equalsIgnoreCase("lower") && nextCard < firstCard)
{
    String userGuess = JOptionPane.showInputDialog(null, "Correct! The current card is a " 
               + nextCard + ". Will the next card be higher, lower or equal?");
    correctGuesses++;
}

Stringプリミティブ型ではありません。==代わりに使用することはできません:

if (userGuess.equalsIgnoreCase("higher") && nextCard > firstCard)
{

文字列に関するOracle のドキュメントを参照してください。これにより、さらに役立つはずです。ハッピーコーディング!

于 2013-11-06T20:15:45.737 に答える
0

適切な方法が 2 つあります。

  1. 変数の名前を変更して (既存の userGuess 変数と競合しないように)、if ステートメントの外で宣言します。

    String nextGuess = "";
    if (userGuess.equals("higher") && nextCard > firstCard) {
        nextGuess = JOptionPane.showInputDialog(null, "Correct! The current card is a " + nextCard + ". Will the next card be higher, lower or equal?");
        correctGuesses++;
    }
    
  2. ユーザーに何かを入力させるたびに、同じ userGuess 変数を使用するだけです。

    if (userGuess.equals("higher") && nextCard > firstCard) {
        userGuess = JOptionPane.showInputDialog(null, "Correct! The current card is a " + nextCard + ". Will the next card be higher, lower or equal?");
        correctGuesses++;
    }
    
于 2013-11-06T20:19:02.487 に答える