gpt4 book ai didi

java - 方法返回 true,即使它不应该返回。 for 循环的可能并发症

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:11 24 4
gpt4 key购买 nike

我是 Java 的新手,所以请多多包涵。我写了这个程序:

public static void main(String args[])
{
int[] list = {1, 1, 2, 2, 3, 4, 5, 6, 7, 8, 10};
isUnique(list);
System.out.println(isUnique(list));

}

private static boolean isUnique(int[] array)
{
int count = 0;

for (int n : array)
{
for (int i = 0; i < array.length; i++)
{
if (n == array[i])
{
count++;
}
if (count > 1)
{
return false;
}
else
{
return true;
}
}
}
return false;
}

它应该检查数组并查看每个数字是否超过 1 个。但是它似乎不起作用。即使有两个 1,它也返回 true。有任何想法吗?我怀疑 for 循环不工作,但我不太清楚为什么。

提前致谢!

最佳答案

无论如何它都会返回 true 因为你有 else block 。因为 count 从零开始并且每个循环最多增加一次,所以 else block 将始终运行(如果数组长度不是0).您可以将其视为两种情况:

情况 1。n == array[i] --> count 将等于 1 --> count>1 为真--> else block 运行并返回 true。

情况 2. n 不是 array[i] --> count 等于 0 --> count>1不是 true - -> else block 运行并返回 true

关于java - 方法返回 true,即使它不应该返回。 for 循环的可能并发症,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042067/

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