我的 CS1 类(class)作业是创建一个类似于石头剪刀布的游戏。输入为 1、2、3、4 和 5。我需要帮助弄清楚如何提示用户输入正确的输入,以防用户输入的数字不是 1-5。我还需要帮助插入“再玩一次?”环形。请帮助我,我很困难。我真的很挣扎。
import java.util.Scanner;
import java.util.Random;
public class Moropinzee {
public static void main(String[] args) {
String personPlay1;
String personPlay2;
String response;
Scanner scan = new Scanner(System.in);
Random generator = new Random();
System.out.println("Hey, Let's Play Moropinzee!\n" + "Please enter a move.\n"
+ "Monkey = 1, Robot = 2, Pirate = 3, Ninja= 4, and Zombies = 5.");
System.out.println("Player 1 plays: ");
personPlay1 = scan.next();
System.out.println("Player 2 plays ");
personPlay2 = scan.next();
if (personPlay1.equals(personPlay2))
System.out.println("It's a tie!");
else if (personPlay1.equals("1"))
if (personPlay2.equals("2"))
System.out.println("Monkey unplugs Robot. Player 1 win!!");
if (personPlay1.equals("2"))
if (personPlay2.equals("1"))
System.out.println("Monkey unplugs Robot. Player 2 win!!");
if (personPlay1.equals("1"))
if (personPlay2.equals("3"))
System.out.println("Pirate skewers Monkey. Player 2 win!!");
if (personPlay1.equals("3"))
if (personPlay2.equals("1"))
System.out.println("Pirate skewers Monkey. Player 1 win!!");
if (personPlay1.equals("1"))
if (personPlay2.equals("4"))
System.out.println("Monkey fools Ninja. Player 1 win!!");
if (personPlay1.equals("4"))
if (personPlay2.equals("1"))
System.out.println("Monkey fools Ninja. Player 2 win!!");
if (personPlay1.equals("1"))
if (personPlay2.equals("5"))
System.out.println("Zombie savages Monkey. Player 2 win!!");
if (personPlay1.equals("5"))
if (personPlay2.equals("1"))
System.out.println("Zombie savages Monkey. Player 1 win!!");
if (personPlay1.equals("2"))
if (personPlay2.equals("3"))
System.out.println("Pirate drowns Robot. Player 2 win!!");
if (personPlay1.equals("3"))
if (personPlay2.equals("2"))
System.out.println("Pirate drowns Robot. Player 1 win!!");
if (personPlay1.equals("2"))
if (personPlay2.equals("4"))
System.out.println("Robot chokes Ninja. Player 1 win!!");
if (personPlay1.equals("4"))
if (personPlay2.equals("2"))
System.out.println("Robot chokes Ninja. Player 2 win!!");
if (personPlay1.equals("2"))
if (personPlay1.equals("5"))
System.out.println("Robot crushes Zombie. Player 1 win!!");
if (personPlay1.equals("5"))
if (personPlay1.equals("2"))
System.out.println("Robot crushes Zombie. Player 2 win!!");
if (personPlay1.equals("3"))
if (personPlay2.equals("4"))
System.out.println("Ninja karate chops Pirate. Player 2 win!!");
if (personPlay1.equals("4"))
if (personPlay2.equals("3"))
System.out.println("Ninja karate chops Pirate. Player 1 win!!");
if (personPlay1.equals("3"))
if (personPlay2.equals("5"))
System.out.println("Zombie eats Pirate. Player 2 win!!");
if (personPlay1.equals("5"))
if (personPlay2.equals("3"))
System.out.println("Zombie eats Pirate. Player 1 win!!");
if (personPlay1.equals("4"))
if (personPlay2.equals("5"))
System.out.println("Ninja decapitates Zombie. Player 1 win!!");
if (personPlay1.equals("5"))
if (personPlay2.equals("4"))
System.out.println("Ninja decapitates Zombie. Player 2 win!!");
else {
}
}
}
最佳答案
首先考虑为您的消息创建一个数组
String [][] msgs = new String [6][6];
msgs[1][2] = "Monkey unplugs Robot. Player 1 win!!";
msgs[2][1] = "Monkey unplugs Robot. Player 2 win!!";
// etc
Scanner scan = new Scanner(System.in);
// get input
while (true) {
System.out.println("enter number 1 or -1 to quit");
int num1 = scan.nextInt();
if (num1 == -1) break;
if (num1 < 1 || num1> 5) {
continue;
}
System.out.println("enter number 2");
int num2 = scan.nextInt();
if (num2 < 1 || num2> 5) {
continue;
}
System.out.println(msgs[num1][num2]);
}
当然,您需要将所有消息添加到数组中,并且您可能想要对无效输入进行进一步测试,但至少此方法可以防止大量重复代码
关于java - 输入验证和再次播放循环JAVA作业时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52733651/