具有minValue的Java数组

时间:2018-10-17 18:43:36

标签: 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” 我的代码有什么问题?

3 个答案:

答案 0 :(得分:1)

您只需要更改无输入的方法, 我添加了一个可以使用的权利。

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

答案 1 :(得分:0)

好吧,让我尝试并运行它。 您创建一个长度为5的整数数组,要求用户输入5个数字,并在用户输入时将这些数字添加到数组arr中。我在for循环

中看到了
for(int e : arr) {
    e = sc.nextInt();
}
正在为

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

答案 2 :(得分:-2)

我认为这可能对您有帮助

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Samplings {

    @Id
    @GenericGenerator(name = "samplings_id_seq", strategy="com.lcm.model.SamplingSequenceGenerator")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "samplings_id_seq")
    private Integer id;

    @OneToMany(mappedBy = "sampling")
    private List<Samples> samples = new ArrayList<>();

}   

@Entity
@IdClass(SamplesPK.class)
public class Samples  {

    @Id
    private String sampleLetter;

    @Id
    @ManyToOne(optional = false)
    @JoinColumns({
        @JoinColumn(name = "id", referencedColumnName = "id")})
    private Samplings sampling;
}   

public class SamplesPK implements Serializable {

    private Integer id;

    private String sampleLetter;

    public SamplesPK(Integer id, String sampleLetter) {
        this.id = id;
        this.sampleLetter = sampleLetter;
    }

    .... //get / set
}

并更改

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