gpt4 book ai didi

java - 输出不会打印在 if...else 语句中

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:33 24 4
gpt4 key购买 nike

我是大学计算机科学专业的新生,我对所有这些东西都是全新的。我们目前正在使用java,并且正在做我们的第一个作业,我们必须为基于文本的游戏制作一个战斗计算器。我的问题出在我的 if else 语句中,当我运行程序时,打印行语句不会打印出来。

    userInput = input.next();

int action1 = 1;
action1 = input.nextInt();
int action2 = 2;
action2 = input.nextInt();
int action3 = 3;
action3 = input.nextInt();
int action4 = 4;
action4 = input.nextInt();

if (userInput == action1){
System.out.println("You strike the goblin with your sword for 12 damage.");
}
else if (userInput.equals(action2)){
System.out.println("You cast the weaken spell on the goblin.");
}
else if (userInput.equals(action3)){
System.out.println("You focus and charge your magic power.");
}
else if (userInput.equals(action4)){
System.out.println("You run away!");
}

}

我也不知道如何在这个网站上正确地放置代码,如果有点难以理解,抱歉。但无论如何,我做错了什么,导致 if...else 语句的输出无法打印?

最佳答案

首先,我假设您正在使用扫描仪来读取用户的输入。如果是这样,input.next() 返回一个 String,因此 if (userInput == action1){ 无效。

此外,(再次假设)如果您更正这一点,这些类型的比较即使它们具有相同的值,它们也不会匹配。

您的问题在于 equals 方法和 == 运算符之间的差异。

试试这个:

int userInput = input.nextInt();

int action1 = input.nextInt();
int action2 = input.nextInt();
int action3 = input.nextInt();
int action4 = input.nextInt();

if (userInput == action1) {
System.out.println("You strike the goblin with your sword for 12 damage.");
} else if (userInput == action2) {
System.out.println("You cast the weaken spell on the goblin.");
} else if (userInput == action3) {
System.out.println("You focus and charge your magic power.");
} else if (userInput == action4) {
System.out.println("You run away!");
}

请注意,我稍微更改了绑定(bind)/分配,userInput 的类型现在是 int

关于java - 输出不会打印在 if...else 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32508489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com