为了账号安全,请及时绑定邮箱和手机立即绑定

Java 为什么我输入的每个输入都会忽略我的 While 循环?

Java 为什么我输入的每个输入都会忽略我的 While 循环?

红颜莎娜 2023-11-10 17:15:06
我试图找出为什么我的 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"))
查看完整回答
反对 回复 2023-11-10
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信