为什么“ getIndex”在第一次出现后就不继续查找索引?
write方法实现一个索引,该索引查找数组中指定元素的首次出现。
public static void main(String[] args) {
//定义数组
int[] arr = {5,7,2,3,5};
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的数字:");
int num = sc.nextInt();
int index = getIndex(arr,num);
System.out.println(index);
}
public static int getIndex(int[] arr,int value) {
for(int i=0; i<arr.length; i++) {
if(arr[i] == value) {
return i;
}
}
return -1;
}
我希望输出为0和4,但实际输出为0。
答案 0 :(得分:1)
在您[-1]
一个值之后,您的getIndex()
函数将停止。从函数返回时,它将不再继续运行该函数!
答案 1 :(得分:1)
方法的返回类型为int
,这意味着它将一次返回一个值。请尝试以下操作:
public static void main(String[] args) {
//定义数组
int[] arr = {5,7,2,3,5};
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查找的数字:");
int num = sc.nextInt();
getIndex(arr,num);
}
public static void getIndex(int[] arr,int value) {
boolean isFound = false;
for(int i=0; i<arr.length; i++) {
if(arr[i] == value) {
System.out.println(i);
isFound = true;
}
}
if( !isFound)
System.out.println("Not found");
}
答案 2 :(得分:0)
您的方法签名返回值是 ONLY ONE int ,它表示给定值的第一个索引出现。
public static **int** getIndex(int[] arr,int value)
因此,如果数组多次包含给定值,则仅返回第一个索引。