【发布时间】:2016-02-20 00:26:57
【问题描述】:
我的isUnique 方法有问题。要么我犯了逻辑错误,要么犯了语法错误,或者两者兼而有之。我必须确保我得到的每个用户输入都是唯一的。我所做的其他一切都是正确的,但那个方法。我正在使用调试器,我注意到“数字”不会随着用户输入的变化而改变,但我是新手,有点迷路了。分配:输入 5 个数字并测试有效性和唯一性。如果无效,则不计入 5 个数字。如果不是唯一的,则计入 5 个数字,但计算唯一的数量,如果不是唯一的,则打印“不唯一”。
import java.util.Scanner;
public class Assignment4Part2 {
public static void main(String[] args) {
int[] numbers = new int[5];
System.out.println("Enter an integer (50-100): ");
Scanner input = new Scanner(System.in);
int uniqueCount = 0;
for (int i = 0; i < numbers.length;) {
{
numbers[i] = input.nextInt();
if (isValid(numbers[i]) == true) {
i++;
if (isUnique(numbers, numbers[i]) == true) {
uniqueCount++;
System.out.printf("Unique so far: %d ", uniqueCount);
}
if (isUnique(numbers, numbers[i]) == false) {
System.out.println("That's not unique.\n");
}
}
}
}
for (int i = 0; i < numbers.length; i++)
{
System.out.print(numbers[i] + " ");
}
}
public static boolean isValid(int array) {
if (array <= 100 & array >= 50) {
return true;
} else {
System.out.println(" ***Invalid Number\n");
return false;
}
}
public static boolean isUnique(int[] array, int numbers) {
for (int i = 0; i < array.length; i++) {
if (array[i] == numbers) {
return false;
} else {
return true;
}
}
return false;
}
}
【问题讨论】:
-
您需要输入 5 个唯一的数字吗?