如何使用while循环找到最大的变量?

时间:2013-05-17 00:03:50

标签: java

我已经定义了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循环中找到最大的变量?

4 个答案:

答案 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)))))))))))))));

除非它们是某个类中的字段,否则无法迭代(使用forwhile,正如您所说)通过这些变量(局部变量)。您只有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;
}

请注意你需要解决我使用的不正确的变量名。但这就是我如何解决最大的..

祝你好运:)