java 运行for循环时,返回的值不是正确的数组值

mpbci0fu  于 2022-12-02  发布在  Java
关注(0)|答案(4)|浏览(150)

我试过切换值,数字,变量,所有的东西,似乎都不起作用。我对数组还很陌生,所以如果这是一个简单的修复,我道歉。
嵌套循环应该找到数组中的最小值,然后将其返回给主方法,但是,每次我只得到数组中的第一个数字。代码:

public static void main(String[] args) {
        int[] arr = {2, 1, 4, 3, 6, 5, 8, 7};
        int min;
        min = findMin(arr);
        System.out.println("Smallest value: " + min);
    }

    public static int findMin(int[] arr) {
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min) ;
            {
                min = arr[i];
            }
        }
        return arr[min];
    }
t2a7ltrp

t2a7ltrp1#

代码中有两个问题,
1.从有if条件的行中删除分号,如果条件行被视为单个语句,则将分号放在该行的末尾

if (arr[i] < min) 
        {
            min = arr[i];
        }

1.此外,返回min而不是arr[min]

inkz8wg9

inkz8wg92#

应将此行if(arr[i] < min);替换为if(arr[i] < min)
以及return arr[min];return min;的关系

4nkexdtk

4nkexdtk3#

我认为它应该返回“min”变量;如果数组中的最小值是100,代码就会出现编译错误,因为数组中没有100个值。

````        int[] arr = {2, 1, 4, 3, 6, 5, 8, 7};
````        int min;
````        min = findMin(arr);
````        System.out.println("Smallest value: " + min);
````        }

````public static int findMin(int[] arr)
````    {
````        int min = arr[0];
````        for(int i = 0; i < arr.length; i++)
````        {
````            if(arr[i] < min);
````            {
````                min = arr[i];
````            }
````        }
````        return min;
````    }
jjhzyzn0

jjhzyzn04#

首先,你应该在某个时候使用length方法声明数组的长度,这样你就可以在for循环中引用它:

int len = arr.length();

其次,代码应该返回最小值,而不是索引等于最小值的数组。

return min;

相关问题