Java Array with minValue



我是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));
}

结果是 "min : 0 " 我的代码有什么问题???

您只需更改接受输入的方法,而无需更改其他方法, 我添加了一个正确的,您可以使用它。

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

好的,让我试着运行它。 您创建一个长度为 5 索引的整数数组,向用户询问 5 个数字,在用户输入这些数字时将这些数字添加到数组 arr 中。我在 for 循环中看到

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

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

我认为这可能会对您有所帮助

public static int minValue(int[] arr) {
int min = Integer.MAX_VALUE;
for(int e : arr) {
if(e < min) {
min = e;
}
}
return min;
}

并且还要改变这一点

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

最新更新