我正在尝试完成此代码。我似乎无法将用户输入的字符限制为“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();
}
}