2

任务

方法:

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

描述:

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

例如,如果输入数组是 {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 错误的结果

我的结果
(来源:gyazo.com

4

3 回答 3

2

targetMatch = i;不想targetMatch=values[i];

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

在您设置值之后,我还会break;在语句中添加iftargetMatch

于 2013-05-01T16:05:14.613 回答
2

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

于 2013-05-01T16:05:38.943 回答
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;
    }
}
于 2013-05-01T16:23:17.490 回答