我已经定义了16个变量并为它们分配了不同类型的值。
int block0 = 5;
int block1 = 6;
int block2 = 8;
int block3 = 25;
int block4 = 8;
int block5 = 23;
int block6 = 2;
int block7 = 1;
int block8 = 6;
int block9 = 4;
int block10 = 5;
int block11 = 7;
int block12 = 15;
int block13 = 4;
int block14 = 5;
int block15 = 8;
如何在所有使用while或for循环中找到最大的变量?
答案 0 :(得分:3)
首先你必须把它们变成一个数组
int[] intArr = new int[16];
int[0] = 5;
int[1] = 6;
...
然后你可以迭代
int max = 0;
int maxIndex = 0;
for(int i=0; i<intArr.length; i++)
{
if(max < intArr[i])
maxIndex = i;
}
答案 1 :(得分:3)
你应,但如果 不能使用数组,则可以使用Math.max()
,例如漂亮代码:
int max = Math.max(block0, Math.max(block1, Math.max(block2, Math.max(block3, Math.max(block4, Math.max(block5, Math.max(block6, Math.max(block7, Math.max(block8, Math.max(block9, Math.max(block10, Math.max(block11, Math.max(block12, Math.max(block13, Math.max(block14, block15)))))))))))))));
除非它们是某个类中的字段,否则无法迭代(使用for
或while
,正如您所说)通过这些变量(局部变量)。您只有Math.max()
以外的选项才是一个巨大的if
语句。但与之相比,Math.max()
看起来很漂亮。
答案 2 :(得分:2)
如果你真的不能使用数组,请自己创建方法:
public static int maxValue(int... values) {
int maximum = Integer.MIN_VALUE;
for(int x : values)
maximum = (x > maximum) ? x : maximum;
return maximum;
}
这样你可以用多个参数调用它,例如。通过说
int max = maxValue(block0, block1, /*etc*/, block15);
@acdcjunior使用多种Math.max方法的解决方案当然也有效。
答案 3 :(得分:0)
这很容易......
做一个简单的排序......
function findlarge()
{
var largest = 0;
for (i = 0; i < 15; ++i)
{
largest = ((block+i) > block+(i+1)) ? block+i : block+i+1;
}
return largest;
}
请注意你需要解决我使用的不正确的变量名。但这就是我如何解决最大的..
祝你好运:)