为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐8265434 2023-03-31 16:59:13
为什么“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。
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

您的方法的返回类型意味着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");

    }


查看完整回答
反对 回复 2023-03-31
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

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



查看完整回答
反对 回复 2023-03-31
?
慕森王

TA贡献1777条经验 获得超3个赞

您的方法签名返回值只有一个 int,它表示给定值的第一个索引出现。

public static **int** getIndex(int[] arr,int value)

因此,如果数组多次包含给定值,则只会返回第一个索引。


查看完整回答
反对 回复 2023-03-31
  • 3 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信