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

Java 如何使用while循环找到最大的变量?,java,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

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

这相当简单

做一个简单的分类

function findlarge()
{
   var largest = 0;
   for (i = 0; i < 15; ++i)
   {
     largest = ((block+i) > block+(i+1)) ? block+i : block+i+1; 
   }
   return largest;
}
函数findlarge()
{
var最大值=0;
对于(i=0;i<15;++i)
{
最大=((区块+i)>区块+(i+1))?区块+i:区块+i+1;
}
回报最大;
}
请注意,您需要解决我使用的不正确的变量名..但这是我如何整理最大的


祝你好运:)

首先你必须把它们做成一个数组

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;
}
int max=0;
int maxIndex=0;

对于(int i=0;i您应该使用数组,但是如果不能使用数组,您可以使用
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()
看起来很漂亮。

如果您真的不能使用数组,请使用您自己的方法:

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方法的解决方案当然也能起作用。

数组是你的朋友我假设的(从
int
)这是Java而不是JavaScript,对吗?使用数组。已经回答的问题,请检查这里的代码:好的,在对象中创建字段并使用反射。@当您只想找到最大值时,JosephDreamer排序并不是那么理想。您无法做您似乎认为您可以做的事情。如果
i
为1,
block+i
只添加1 to
block
,它不能让你得到
block1
@Dory的值,用java你可以写这个代码,你不会有错误,但它不会产生你认为的东西伙计们,我知道这一点。标签上还写着javascript:)此外,请看我下面的注释。我只是建议逻辑,不超过这个。但是你不能“建议逻辑”如果涉及解决方案环境中不存在的工具(因为您不能说“just use eval()”),那么应该删除这个答案。