你如何限制用户输入并使布尔工作?

时间:2016-11-17 18:22:34

标签: java

我正在尝试完成此代码。我似乎无法将用户输入的字符限制为“H”或“L”;以及获得playAgain的布尔值。

感谢任何帮助,我是新来的......:)

这是我的Java代码:

import java.util.Scanner;
import java.util.Random;

public class HigherOrLower {
public static void main(String[] args){
    System.out.println("Welcome to the Higher or Lower Game!");

    int cardOne;
    int cardTwo;
    String userGuess;
    String userInput;
    boolean playAgain = false;

    Scanner scan = new Scanner(System.in);

    do{

        do{
            Random rand = new Random();
            cardOne = rand.nextInt(13)+1;
            System.out.println("Card is: " + cardOne);
            System.out.print("(H)igher or (L)ower: ");
            userGuess = scan.nextLine();
            cardTwo = rand.nextInt(13)+1;       
        }while(!"H".equalsIgnoreCase(userGuess) || !"L".equalsIgnoreCase(userGuess));

        if(((cardOne > cardTwo) && (userGuess.equalsIgnoreCase("L"))) || ((cardTwo > cardOne) && (userGuess.equalsIgnoreCase("H")))){
            System.out.println("Card is: " + cardTwo);
            System.out.println("well done you are correct.");
            playAgain = true;
            cardOne = cardTwo;
        }
        else{
            System.out.println("You lose. The Card was: " + cardTwo);
            System.out.print("Play Again? (Y/N): ");
            userInput = scan.next();
            if (userInput.equalsIgnoreCase("Y")) {
                playAgain = true;
            }
            else {
                playAgain = false;
            }
        }
    }while(playAgain);

    scan.close();
}

}

0 个答案:

没有答案