gpt4 book ai didi

Java `if` 语句和 `else if` 未按预期工作

转载 作者:行者123 更新时间:2023-11-30 03:06:08 25 4
gpt4 key购买 nike

我让用户将 5 个整数的列表输入到 int[] 中。然后,我使用简单的 for 语句遍历 int[] 中的这些整数。我有一个声明为“evens”的 int 变量。如果 int[] 中的数字位于 i %2 == 0 处,evens++;

现在我有了 if 语句:

if (evens !=2 || evens!=3) {
System.out.print("This was called because " + evens + " is not equal to 2 or 3");
}

问题在于,无论 Evens 中的值是多少,都会调用此函数。可能是 5 或 3,但仍然会被跟注。我最近一直在使用 C#,但这是简单的 Java。

完整代码:

int evens = 0;
for(int i=0; i<chosenNumbers.length; i++) {
if(chosenNumbers[i] %2 ==0)
evens++;
}

System.out.println("You chose "+evens+" even numbers and " + (chosenNumbers.length-evens) + " odd numbers.");

if (evens !=2 || evens!=3) {
System.out.print("This was called because " + evens + " is not equal to 2 or 3");
} else if (evens==2 || evens==3) {
System.out.print(evens +" equals 2 or 3");
}

最佳答案

您需要更换:

if(evens !=2 || evens!=3) {
System.out.print("This was called because " + evens + " is not equal to 2 or 3");
}

与:

if(evens !=2 && evens!=3) {
System.out.print("This was called because " + evens + " is not equal to 2 or 3");
}

如果您使用逻辑 OR ||,您将始终进入该 block ,因为它不会进入的唯一方法是 evens 等于 2 和 3同时,这是不可能的。

关于Java `if` 语句和 `else if` 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34734187/

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