猿问

带有 minValue 的 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;

            }

        }

        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 " 我的代码有什么问题???


翻过高山走不出你
浏览 127回答 3
3回答

aluckdog

你只需要改变输入的方法,我已经添加了一个你可以使用它的正确方法。  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 中。看起来您需要添加一条语句来将用户输入传递/添加到数组中。

慕哥6287543

我想这可能对你有帮助&nbsp; &nbsp; public static int minValue(int[] arr) {&nbsp; &nbsp; &nbsp; &nbsp; int min = Integer.MAX_VALUE;&nbsp; &nbsp; &nbsp; &nbsp; for(int e : arr) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(e < min) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min = e;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return min;&nbsp; &nbsp; }也改变这个&nbsp;for(int i = 0; i < arr.length; i++) {&nbsp; &nbsp; arr[i] = sc.nextInt();&nbsp;}
随时随地看视频慕课网APP

相关分类

Java
我要回答