我是新手,也是新手。老虎机代码工作正常。我希望以下代码执行以下操作:
当被问及(Play again? (Y/N?))
时,如果我通过说Y
回复游戏重启。如果我回答说N
,程序就会终止。最后,如果我通过按任何其他内容做出回应,例如R
,邮件重复(Play again? (Y/N?))
。我正在考虑做一个循环,但不确定哪些元素去哪里。谢谢!
import java.util.Random;
import java.util.Scanner;
public class SlotMachine {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int slotOne;
int slotTwo;
int slotThree;
String userResponse;
Random randomNumbers = new Random();
slotOne = randomNumbers.nextInt(10); // Random number between 0 and 9
slotTwo= randomNumbers.nextInt(10);
slotThree = randomNumbers.nextInt(10);
System.out.println(slotOne + " " + slotTwo + " " + slotThree + " " ); // prints all three slot numbers next to each other
if (slotOne != slotTwo && slotOne != slotThree && slotTwo != slotThree) // ! means does not equal
{
System.out.println("No numbers match");
}
else if (slotOne == slotTwo && slotOne == slotThree)
{
System.out.println("All three match - jackpot");
}
else
{
System.out.println("Two numbers match");
}
System.out.print("Play again? (Y/N?)");
userResponse = scan.next();
更新
它的第二个循环迫使它关闭?
答案 0 :(得分:0)
userResponse = "Y";
While(userResponse.equals("Y")){
Random randomNumbers = new Random();
slotOne = randomNumbers.nextInt(10); // Random number between 0 and 9
slotTwo= randomNumbers.nextInt(10);
slotThree = randomNumbers.nextInt(10);
System.out.println(slotOne + " " + slotTwo + " " + slotThree + " " );
if (slotOne != slotTwo && slotOne != slotThree && slotTwo != slotThree)
{
System.out.println("No numbers match");
}
else if (slotOne == slotTwo && slotOne == slotThree)
{
System.out.println("All three match - jackpot");
}else
{
System.out.println("Two numbers match");
}
System.out.print("Play again? (Y/N?)");
userResponse = scan.next();
}
答案 1 :(得分:0)
使用开关或简单的if语句
例如
if(input.equals("Y")){
//your code
}
if(input.equals("N")){
//your code
}
else{
//your code
}
答案 2 :(得分:0)
你所描述的通常被称为“游戏循环”。基本上整个游戏的逻辑被包裹在循环中,该循环检查游戏的任何终止条件。在这种情况下,玩家说他们不想再玩。它可能看起来像这样:
boolean playGame = true;
while (playGame) {
Scanner scan = new Scanner(System.in);
int slotOne;
int slotTwo;
// and so on...
// then after the game...
while (!(userResponse.equals("Y") || userResponse.equals("N"))) {
System.out.print("Play again? (Y/N?)");
userResponse = scan.next();
if (userResponse.equals("N")) {
playGame = false;
}
}
}
这个特定的实现无疑是有点匆忙,但你明白了。总体情况决定了游戏是否仍然可玩。如果不是,则游戏循环结束。在内部,你还可以有一个用户输入循环,以便在收到任何无效输入时保持提示。对于简单的游戏,您甚至可以将这两者结合起来,在游戏循环之外声明userResponse
,将其初始化为"Y"
,并执行while (userResponse.Equals("Y"))
之类的操作。这在语义上将两个概念结合在一起,因此对于较大的游戏,如果除了更清晰的变量名和条件语句之外没有其他原因,你需要将循环条件与用户输入分开。
您可能还会找到其他原因来打破游戏,在这种情况下,您可以使用类似continue
语句的内容在更新playGame
值后重复循环循环,在游戏完成之前重置或退出游戏。
答案 3 :(得分:0)
让我们看看发生了什么
你知道自己需要循环
其中有3个
所有这些之间的<强> 1 即可。 for loop
<强> 2 即可。 while循环
第3 即可。做while while循环
你需要做的循环
为什么?
因为您希望您的用户至少完成一次该过程。
让我们来看看do while循环的定义
<强>语法强>: do ... while循环的语法是:
do
{
//Statements
}while(Boolean_expression);
请注意,布尔表达式出现在循环的末尾,所以 循环中的语句在测试布尔值之前执行一次。
如果布尔表达式为true,则控制流会跳回 要做,循环中的语句再次执行。这个过程 重复,直到布尔表达式为假。
例如:
代码:
String answer = "Y";
do {
System.out.println("enter number 0 number plz");
Scanner sc = new Scanner(System.in);
int input = Integer.parseInt(sc.next());
System.out.println("would you like to repeate again?");
answer = sc.next();
} while (answer.equalsIgnoreCase("Y"));
输出:
如果您要检查输入是否是您要查找的输入,可以按照此示例
代码:
String answer = "Y";
do {
System.out.println("enter number 0 number plz:");
Scanner sc = new Scanner(System.in);
int input = Integer.parseInt(sc.next());
if (input != 0) {
System.out.println("your entered number is not zero");
System.out.println("please try again");
} else {
System.out.println("would you like to repeate again?");
answer = sc.next();
}
} while (answer.equalsIgnoreCase("Y"));
输出:
答案 4 :(得分:0)
do循环是一种合理的解决方案。但是你实际上需要两个循环才能完成你所要求的。一个检查响应是否有效(“Y”或“N”)和另一个检查响应是否为“Y”。所以它可能看起来像这样:
do {
...
do {
System.out.print("Play again? (Y/N?)");
userResponse = scan.next();
} while (userResponse.equals("Y") || userResponse.equals("N"));
} while (userResponse.equals("Y"));