如何获取我不知道的数组的索引?

时间:2013-05-01 16:03:43

标签: java arrays loops indexing

任务

方法

public int indexOfTarget (int[] values, int target)

说明

强制练习8)完成indexOfTarget方法,该方法传递两个参数:一个int(值)数组和一个int(目标)。该方法返回指定整数目标第一次出现的数组中的索引位置。如果目标在数组中出现,则返回第一个此类事件的索引。

例如,如果输入数组是 {3,7,2,4},目标是7

该方法返回1

如果此数组中没有出现此类整数,则返回-1。

一个例子: indexOfTarget({3,7,2,4},7)`应返回1.

到目前为止我写过:

public int indexOfTarget (int[] values, int target) {
int targetMatch=-1;
for(int i=0;i<values.length;i++){
if(values[i]==target){
targetMatch=values[i];
}
}
return targetMatch;
}

CodeWrite错误的结果

my results http://gyazo.com/7892260b1721b8623ba4ac4477d8b12f.png

3 个答案:

答案 0 :(得分:2)

您希望targetMatch = i;不是targetMatch=values[i];

您应该保存索引,而不是值。

在您设置break;

的值后,我还会在if语句中添加targetMatch

答案 1 :(得分:2)

你应该targetMatch = i。您需要索引值,而不是该索引处的数组值。

答案 2 :(得分:0)

当数组包含有效的int值时,此java代码应适用于所有方案。 *不是有效的int值。

public class Program
{
 public static void main(String[] args)
    {
    int[] values= {3, 7, 2, 4};
    int target = 7;
    int position = indexOfTarget(values,target);
    if(position>-1)
    System.out.println("Pass");
    else
    System.out.println("Fail");
    }

public static int indexOfTarget (int[] values, int target) {
int targetMatch=-1;
for(int i=0;i<values.length;i++){
if(values[i]==target){
targetMatch=i;
return i;
}
}
    return targetMatch;
    }
}