因此,我正在尝试为一项分配任务的程序创建一个程序,用户可以选择一种动物,并根据该动物(狗/鸡/鱼)来决定它有多少条腿。如果用户未选择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