Java 当代码应该打印最大值和最小值时,它正在打印数组的最大下标

Java 当代码应该打印最大值和最小值时,它正在打印数组的最大下标,java,arrays,Java,Arrays,我试图打印数组中的最大值和最小值,以及它们各自的下标。我遇到了一个问题,我的代码虽然打印了数组的最高值和最低值,但同时返回了最大和最小数组的最大下标(不考虑值)。问题出在下面的for循环中的某个地方 int max = arrayOfNumbers[0]; int min = arrayOfNumbers[0]; int indexMax = 0; int indexMin = 0; for (int i = 0; i < arrayOfNu

我试图打印数组中的最大值和最小值,以及它们各自的下标。我遇到了一个问题,我的代码虽然打印了数组的最高值和最低值,但同时返回了最大和最小数组的最大下标(不考虑值)。问题出在下面的for循环中的某个地方

int max = arrayOfNumbers[0];
        int min = arrayOfNumbers[0];
        int indexMax = 0;
        int indexMin = 0;
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (max < arrayOfNumbers[i])
        max = arrayOfNumbers[i];
        indexMax = i;
}
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (min > arrayOfNumbers[i])
        min = arrayOfNumbers[i];
        indexMin = i;
int max=ArrayOfNumber[0];
int min=数组编号[0];
int indexMax=0;
int indexMin=0;
for(int i=0;i阵列编号[i])
最小值=阵列数量[i];
indexMin=i;
这应该可以:

int max = arrayOfNumbers[0];
int min = arrayOfNumbers[0];
int indexMax = 0;
int indexMin = 0;
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (max < arrayOfNumbers[i]) {
        max = arrayOfNumbers[i];
        indexMax = i;
    }
}
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (min > arrayOfNumbers[i]) {
        min = arrayOfNumbers[i];
        indexMin = i;
    }
}
int max=ArrayOfNumber[0];
int min=数组编号[0];
int indexMax=0;
int indexMin=0;
for(int i=0;i阵列编号[i]){
最小值=阵列数量[i];
indexMin=i;
}
}

您忘记将
if
s后面的两行都放在大括号中。每次循环中的代码执行时,当前索引都被写入
indexMax
indexMin
,这就是为什么循环完成后,它们包含“最大下标”的原因.

-1,而是告诉他如何找出问题的根源,而不是提供一个盲目的复制和粘贴解决方案……恩德里,我的一般语法是正确的。这不像我要求的是一个完整的循环。我只是忘记了一组大括号。当答案就在我面前时问这个问题都是我的错,而不是他的错很明显,他只加了4个大括号,-1不需要这么小的一个correction@OndrejTucny当你忙着否决我的正确答案时,我正在写解释。感谢你通过否决投票奖励我的努力。我会尽快这样做(答案通常不会这么快!)