该代码可能不会执行预期的操作:
即使 77 在数组中 - 它也不会被“找到”,因为它之前的 91 会“隐藏”它。
因此,如果未找到该元素,或者列表中的键之前有更高的值,这将返回 -1
int linear[] = {4, 21, 36, 14, 66, 91, 8, 22, 7, 81, 77, 10};
int key = 77;
for (int i = 0; i < linear.length; i++){
if (linear[i] > key) // when linear gets to 91 - this is true
return -1; //here // this will return -1 before 77 is found
else if (linear[i] == key)
return i;
}
要搜索整个(未排序的)数组 - 需要以下代码:
for (int i = 0; i < linear.length; i++)
{
if (linear[i] == key)
return i;
}
return -1; // not found
所以在一个函数中 - return 将在达到 return 时停止执行函数,调用者将获得返回的值。
所以,如果这是在一个函数中foo()
并且代码有x=foo();
那么 x 将是 -1
通常,键和数组都将传递给 foo:x=foo(77, linear);