查找Array Java中的值的索引

时间:2013-12-15 01:53:37

标签: java arrays indexing

我正在尝试找到数组最小数量的索引。我的代码在下面,由于某种原因索引保持打印值9。

public static void main (String args [])
{
    int [] numbers = new int [10];

    //10 data inputs from user

    int smNum = numbers[0];
    int index = 0;


    for(int i = 0; i < numbers.length; i++)
    {
        if (numbers[i] < smNum)
            smNum = numbers[i];
            index = i;
    }

    System.out.println("\nThe smallest number in the array is: "+smNum+"\nThe index of this number is: "+ index); 

    }
}

提前致谢。

2 个答案:

答案 0 :(得分:0)

这不是我的意思。

没有花括号的if块仅评估单个后面的表达式。换句话说

if (numbers[i] < smNum)
    smNum = numbers[i];
    index = i;

相当于

if (numbers[i] < smNum) {
    smNum = numbers[i];
}
index = i;

很明显,index = i;将始终被评估。

如果你想在if块中执行多个语句,你必须用大括号包装这些语句。

if (numbers[i] < smNum) {
    smNum = numbers[i];
    index = i;
}

答案 1 :(得分:0)

将大括号添加到if块

int smNum = numbers[0];
int index = 0;


for(int i = 0; i < numbers.length; i++)
{
    if (numbers[i] < smNum){
        smNum = numbers[i];
        index = i;
    }
}

System.out.println("\nThe smallest number in the array is: "+smNum+"\nThe index of this number is: "+ index);

应该解决问题。如果一个块(如if子句有多行),则需要将它们用大括号括起来。如果它只有一行,则不需要括号。