所以我需要一些帮助,也许你们可以查看我的代码,看看它为什么不起作用以及我缺少什么。
以下是代码:
import java.util.Scanner;
public class min;
public static void main(string[] args) {
Scanner input = new Scanner(System.in);
double[] list = new double[4];
double min = list[0];
System.out.print("Enter " + list.length + " numbers: ");
for (int i = 0; i < list.length; i++) {
list[i] = input.nextDouble();
if (list[i] < min) {
min = list[i];
}
}
System.out.println(min);
}
}
那么,为什么当我有大于面对min时它会带回0.0?
当我翻转周围的标志时,它会起作用并带回最大的数字,当我输出一个数字列表时,它可以同时使用最小值和最大值,而不是用于最小输入。
答案 0 :(得分:5)
初始化min
时,list
中的每个值都将为零,因为您尚未填充list
,数字数组的默认内容为零。
这意味着这一行:
double min = list[0];
将min
设置为零,因此只有传入负数时才会将其替换为新值。
将min
初始化为Double.MAX_VALUE
,或使用两个循环;一个填充数组,另一个填充分钟。在两个循环之间初始化min
。
答案 1 :(得分:0)
您也可以在用户输入后将min初始化为input.nextDouble,并将for循环更改为从1开始