为什么这个方法在索引第一次出现后不继续查找呢?

为什么“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。


慕姐8265434
浏览 121回答 3
3回答

慕标琳琳

您的方法的返回类型意味着int它将一次返回一个值。请尝试以下操作:&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; //定义数组&nbsp; &nbsp; &nbsp; &nbsp; int[] arr = {5,7,2,3,5};&nbsp; &nbsp; &nbsp; &nbsp; //键盘录入&nbsp; &nbsp; &nbsp; &nbsp; Scanner sc = new Scanner(System.in);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("请输入要查找的数字:");&nbsp; &nbsp; &nbsp; &nbsp; int num = sc.nextInt();&nbsp; &nbsp; &nbsp; &nbsp; getIndex(arr,num);&nbsp; &nbsp; }&nbsp; &nbsp; public static void getIndex(int[] arr,int value) {&nbsp; &nbsp; &nbsp; &nbsp; boolean isFound = false;&nbsp; &nbsp; &nbsp; &nbsp; for(int i=0; i<arr.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(arr[i] == value) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(i);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isFound = true;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; if( !isFound)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Not found");&nbsp; &nbsp; }

慕田峪4524236

您的getIndex()功能在您return输入值后停止。当你从一个函数返回时,它不会再继续运行这个函数了!

慕森王

您的方法签名返回值只有一个 int,它表示给定值的第一个索引出现。public&nbsp;static&nbsp;**int**&nbsp;getIndex(int[]&nbsp;arr,int&nbsp;value)因此,如果数组多次包含给定值,则只会返回第一个索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java