java如何完全耗尽此数组中的项?
我正在尝试编写一个程序,要求用户在数组中搜索一个数字。如果数组包含给定的数字,程序将告诉包含该数字的索引。如果数组不包含给定的数字,程序将通知找不到该数字
我的问题可能是格式问题。这是我的节目
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] array = new int[8];
array[0] = 6;
array[1] = 2;
array[2] = 8;
array[3] = 1;
array[4] = 3;
array[5] = 0;
array[6] = 9;
array[7] = 7;
System.out.print("Search for? ");
int searching = Integer.valueOf(scanner.nextLine());
for (int i = 0; i <= array.length - 1; i++) {
if (array[i] == searching) {
System.out.println(searching + " is at index " + i + ".");
break;
}
if (i == array.length-1 && searching != array[i]) {
System.out.println(searching +" was not found.");
break;
}
}
}
我不喜欢我必须加上“break;”语句,该语句位于程序查找所搜索整数的索引之后。这不允许程序找到多个结果。假设search=3,3的索引为4和5。我编写程序的方式不允许程序找到满足前提的第二个索引
# 1 楼答案
你可以做的是添加一个布尔变量,告诉你是否找到了值。最初它是false,但当找到匹配的值时,将其更新为
true
循环后,检查是否找到值:
# 2 楼答案
如果找到布尔标志
found
,可以将其指定为true
(至少一次)输出:
# 3 楼答案
如果要在数组中找到给定数字的所有索引,需要完全遍历数组。不能使用
break
语句来停止迭代可以将给定数字的所有索引放在
List
中。要检查数组中是否至少存在一次数字,请在循环结束后检查List
的大小或者,您可以使用一些标志变量来检查是否至少找到一次数字,并且该检查应该在循环之外