具有最小值的Java数组

具有最小值的Java数组,java,Java,我是Java初学者。我创建了一个类和一个方法,用于返回数组中的最小数。但我不明白为什么它不能很好地工作 下面是代码 package array; import java.util.Scanner; class Value { public static int minValue(int[] arr) { for(int e : arr) { if(arr[0] > e) { arr[0] = e;

我是Java初学者。我创建了一个类和一个方法,用于返回数组中的最小数。但我不明白为什么它不能很好地工作

下面是代码

package array;
import java.util.Scanner;

class Value {
    public static int minValue(int[] arr) {
        for(int e : arr) {
            if(arr[0] > e) {
                arr[0] = e;
            }
        }
        return arr[0];
    }
}
public class ArrayTest {

public static void main(String[] args) {
    int[] arr = new int[5];
    System.out.print("Input Number : ");
    Scanner sc = new Scanner(System.in);

    for(int e : arr) {
        e = sc.nextInt();
    }

    System.out.println("min : " + Value.minValue(arr));
}
结果是“最小值:0”
我的代码有什么问题?

我想这可能会对您有所帮助

    public static int minValue(int[] arr) {
        int min = Integer.MAX_VALUE;
        for(int e : arr) {
            if(e < min) {
                min = e;
            }
        }
        return min;
    }
公共静态int minValue(int[]arr){
int min=整数最大值;
对于(内部e:arr){
如果(e
也改变了这一点

 for(int i = 0; i < arr.length; i++) {
    arr[i] = sc.nextInt();
 }
for(int i=0;i
好的,让我试试看。 创建一个长度为5索引的整数数组,要求用户输入5个数字,并在用户输入时将这些数字添加到数组arr中。我在for循环中看到了这一点

for(int e : arr) {
    e = sc.nextInt();
}

e被分配了用户输入,但它没有将其传递到数组arr中。看起来您需要添加一条语句来将用户输入传递/添加到数组中。

您只需更改获取输入的方法,而无需更改其他内容, 我已经添加了一个正确的,你可以使用这个

  int i = 0;
  for (int e: arr) {
  arr[i] = sc.nextInt();
  i++;
  }

e=sc.nextInt()
您从未将
e
添加到数组中。请看以下内容:。您必须使用普通for版本,而不是for each版本来填充阵列谢谢大家。现在,我知道原因了d
minValue
方法没有任何错误。如果使用该方法,它将更改索引0I处的原始数组,以用于这样的循环;for(inti=0;我用for保存代码,对于每个循环,只需用arr[e]替换e即可