我正在编写一个应该生成四个随机整数(从1到6)的程序,然后丢弃最低值并将剩余的三个加在一起。我用
创建了四个变量int var1 = rand.nextInt(6)+1;
int var2 = rand.nextInt(6)+1;
int var3 = rand.nextInt(6)+1;
int var4 = rand.nextInt(6)+1;
如何让程序检测到最小的变量? (或者变量为最小的变量)我想我可能有一个方法,但编写它会非常冗长乏味,我确信有一种更简单的方法,我只是没有意识到。
答案 0 :(得分:2)
在添加之前不要打扰检测。
return var1 + var2 + var3 + var4 - min(var1, min(var2, min(var3, var4)));
答案 1 :(得分:1)
将整数放入数组中。创建一个表示最小数字的int,将其设置为数组中的第一个值。然后遍历数组以查找任何较小的值。
答案 2 :(得分:0)
就我个人而言,我可能会选择Kleric的答案,但是如果你想要一个可能更具可读性的选项;将数字添加到List
,然后使用Collections.sort(list)
按升序排序,然后简单地从索引1求和:
List<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < 4; i++) {
ints.add(rand.nextInt(6) + 1);
}
Collections.sort(ints);
int sum = 0;
for (int i = 1; i < ints.size(); i++) {
sum += ints.get(i);
}
这显然是一种有点不必要的排序,因此不是实现这一目标的最佳表现方式,但我相信它的可读性和可维护性足以值得一提,以防这不是性能关键代码。< / p>