因此,我正在尝试为一项分配任务的程序创建一个程序,用户可以选择一种动物,并根据该动物(狗/鸡/鱼)来决定它有多少条腿。如果用户未选择3种动物之一,则游戏将询问用户是否愿意再次玩。如果答案为y,则程序将重新开始,但如果答案为n,则程序将停止。该错误在底部附近显示“ String gameAnswer = input.nextLine();”。它说我必须重命名gameAnswer。有人可以帮我解决这个问题,以便程序正常运行吗?

提前致谢!

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    System.out.println("Choose an animal: ");
    String text = input.nextLine();
    char n;
    char y;
    char gameAnswer = 'n';

    do
        {
        switch (text) {
        case "dog":
            System.out.println("How many legs does a dog have?");
            int dg = input.nextInt();

            if(dg == 4)
            {
                System.out.println("You win!");
            }
            else
            {
                System.out.println("You lose!");
            }
            break;

        case "chicken":
            System.out.println("How many legs does a chicken have?");
            int chkn = input.nextInt();

            if(chkn == 2)
            {
                System.out.println("You win!");
            }
            else
            {
                System.out.println("You lose!");
            }
            break;

        case "fish":
            System.out.println("How many legs does a fish have?");
            int fsh = input.nextInt();

            if(fsh == 0)
            {
                System.out.println("You win!");
            }
            else
            {
                System.out.println("You lose!");
            }
            break;

            default:
                break;
        }
        }
    while(gameAnswer == 'y');
    System.out.println("I don't know that animal. Do you want to try again? (y/n)");
    String gameAnswer = input.nextLine();
    }

最佳答案

该行的提示和阅读应在您的循环内



while(gameAnswer == 'y');
System.out.println("I don't know that animal. Do you want to try again? (y/n)");
char gameAnswer = input.nextLine();




System.out.println("I don't know that animal. Do you want to try again? (y/n)");
gameAnswer = input.nextLine();
while(gameAnswer == 'y');




gameAnswer已经定义,所以不要重新定义。

并且

您可能想要gameAnswer = input.nextLine().charAt (0);

编辑

也移动

System.out.println("Choose an animal: ");
String text = input.nextLine();


到之后

do

07-24 09:28