我是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” 我的代码有什么问题?
答案 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;
}