我花了大约一个小时试图弄清楚这一点,但我做不到。这是我正在学习的 Java 选修课程的练习,我可以使用一些帮助。
编写一个方法 linearSearch(),它接受一个整数数组和一个整数值。然后它应该返回数组内值的索引(通过使用 for 循环按顺序一一遍历元素)。如果未找到该值,则应返回 -1。如果找到多个值,则应返回第一个出现的值。编写一个程序来测试你的方法。
所以这就是我尝试做的。
public class Exercise6 {
public static void main(String [] args) {
int[] a = {3, 6, 70, 3, 7, 9};
linearSearch(a, 3);
}
public static void linearSearch(int[] a, int n){
int index;
for (int i = 0; i < a.length; i++){
if (a[i] == n){
index = i;
break;
}
else {
index = -1;
}
}
System.out.print(index);
}
}
但这显然是错误的。你能指出我正确的方向吗?我不一定要你给我答案,只是给我一个关于步骤的想法。
有几个问题。
您想返回一个值,因此您需要通过返回类型为int
and not在方法中显示该值void
。
你不需要索引变量,你的 for 循环中已经有一个,(i)
所以使用它。
当您遍历循环时,一旦找到值,只需执行 areturn i;
即可返回索引。您的方法中不需要任何break
语句。
你不需要继续分配-1
给索引,所以摆脱else clause
(记住你甚至不需要index
)。
如果您完成循环,则该值必须不存在return -1;
。
最后,由于您要返回一个值,因此您需要在调用该方法时对其进行分配。就这样吧int ret = linearSearch(a, 3);
。然后打印值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句