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

我试图找出为什么我的 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();        

    }

}


红颜莎娜
浏览 66回答 1
1回答

慕容708150

你不应该==在java中使用比较字符串。而是使用:equals()或equalsIgnoreCase()方法。例如:代替: if(userInput == "rock" || userInput == "Rock" || userInput == "r")使用:if(userInput.equalsIgnoreCase("rock") || userInput.equalsIgnoreCase("r"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java