我试图找出为什么我的 main 方法中的 while 循环被忽略,即使我没有输入“退出”。该程序应该接受用户的输入(转换为 int),让计算机生成一个随机 int(石头、布或剪刀),比较两个 int,打印出答案,然后重复一遍,直到“退出” " 或输入任何其他无法识别的输入(不是石头、剪刀、布)。例如:UserInput = rock; 输出:再见!!!(虽然循环被跳过,但直接进入 if 循环,即使“userInput”(转换为 int 1)不等于“quit”(转换为 int 0)。尝试修复它,以便 if UserInput = "rock"(转换为1),计算机随机生成“纸”(转换为2),输出将是“纸”获胜。我几个小时以来一直在努力解决这个问题,因此非常感谢您的帮助,谢谢。package rockPaperScissors;import java.util.*public class RockPaperScissors { public static final int quit = 0; public static final int rock = 1; public static final int paper = 2; public static final int scissors = 3; static Scanner console = new Scanner(System.in);public static void main(String [] args) { //gets userHand from user as int int userHand = promptUserForHand(); while(userHand != quit) { //gets computerHand from the computer(random) as int int computerHand = generateRandomHand(); //compares userHand to computerHand, determines the winner String winner = determineWinner(userHand, computerHand); //prints out the winner System.out.println("The winner is the: " + winner); //starts the next round userHand = promptUserForHand(); } //if userHand equals quit, stop program and say goodbye if(userHand == quit) { System.out.println("Goodbye!!!"); console.close(); }}
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
你不应该==
在java中使用比较字符串。而是使用:equals()
或equalsIgnoreCase()
方法。
例如:
代替:
if(userInput == "rock" || userInput == "Rock" || userInput == "r")
使用:
if(userInput.equalsIgnoreCase("rock") || userInput.equalsIgnoreCase("r"))
添加回答
举报
0/150
提交
取消