Ich bin ziemlich neu in Java, also bitte ertragen Sie mit mir. Ich schrieb dieses Programm:Die Methode gibt true zurück, obwohl dies nicht der Fall ist. Mögliche Komplikation mit for-Schleife
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;
}
}
es angenommen hat, um das Array zu überprüfen und sehen, wenn es mehr ist als 1 jede Zahl. Es scheint jedoch nicht zu funktionieren. Es gibt True zurück, auch wenn es zwei Einsen gibt. Irgendwelche Ideen? Ich vermute, dass die for-Schleife nicht funktioniert, aber ich bin nicht ganz sicher warum.
Vielen Dank im Voraus!
Ist das Problem deutlicher, wenn Sie die zweite umschreiben bedingt äquivalent als 'return count <= 1;'? –