【发布时间】:2017-04-29 00:08:08
【问题描述】:
我正在创建一个 21 的游戏,但我一直在思考如何实现循环。我想做的是介绍游戏(“欢迎来到 21!”),让玩家输入 y 来掷骰子,并给他们掷骰子的值。然后,我想返回并要求他们输入 y 来再次掷骰子。如果他们不输入“y”,我希望出现一条消息,告诉他们必须输入 y 才能玩游戏。基本上,他们会一直被问到是否想玩,直到他们按下 y。
到目前为止,这是我的代码。我遇到的问题是,如果用户按“m”而不是“y”,它会告诉他们“输入 y 玩游戏”,但如果用户在那之后按 y,它会继续告诉他们必须按 y(即使他们已经第二次这样做了)。
import java.util.Scanner;
import java.util.Random;
public class TwentyOne {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Welcome to 21!");
System.out.print("Roll the dice, y/n?: ");
String roll1 = input.nextLine();
while (true) {
if(roll1.equals("Y") || roll1.equals("y")) {
int die1 = (int) (Math.random() * 6) + 1;
int die2 = (int) (Math.random() * 6) + 1;
int sum1 = die1 + die2;
System.out.println("Your dice rolled a sum of: " + sum1);
break;
}
else {
System.out.println("Please press 'y' to roll the dice and play. ");
String rollError = input.nextLine();
}
}
}
【问题讨论】: