我创建了一个 Java 程序,它将用户输入作为一个整数数组,并打印该数组中的任何重复值及其索引。例如,用户输入 5 作为数组大小,然后输入 5 个数字,例如 1、1、1、1 和 1。程序应打印: Duplicate number: 1 Duplicate number's index: 1 Duplicate number: 1 Duplicate number's index : 2 重复数:1 重复数索引:3 重复数:1 重复数索引:4
但是,程序打印: 重复数字:1 重复数字索引:1 重复数字:1 重复数字索引:2 重复数字:1 重复数字索引:3 重复数字:1 重复数字索引:4 重复数字:1 重复数字索引:2重复数:1 重复数索引:3 重复数:1 重复数索引:4 重复数:1 重复数索引:3 重复数:1 重复数索引:4 重复数:1 重复数索引:4
我尝试调试程序,得到的结论是,因为打印结果是在循环内的,只要循环运行并满足一定的条件,就会有多次打印。但是,我找不到使代码不同的方法,因此只打印正确数量的结果。我试图调整代码:插入 break 和 continue,将 print.out 语句放在循环之外,但没有任何效果。
Scanner sc = new Scanner(System.in); int i, j;
System.out.println("This program lets you enter an array of numbers, and then tells you if any of the numbers are duplices, and what the duplicates' indices are. \nPlease enter your desired array size: ");
int arraySize = sc.nextInt();
while (arraySize <= 0) { System.out.println(arraySize + " is not a valid number. \nPlease enter your desired array size: ");
arraySize = sc.nextInt(); continue;}
int[] arrayList = new int[arraySize];
System.out.println("Please enter your array values: ");
for (i = 0; i < arraySize; i++) {
arrayList[i] = sc.nextInt(); }
for (i = 0; i < arrayList.length; i++) {
for (j = i + 1; j < arrayList.length; j++) {
if (i!=j && arrayList[i] == arrayList[j]) {
System.out.println("Duplicate number: " + arrayList[i]);
System.out.println("Duplicate number's index: " + j); }
else if (i!=j && arrayList[i] != arrayList[j]) {System.out.println("There are no duplicates"); }
}
}
眼眸繁星
相关分类