为什么这不总是返回假?

时间:2014-08-21 00:38:13

标签: java

这是来自codingbat的问题:

给定一个int数组,如果数组中前4个元素之一是9,则返回true。数组长度可能小于4.

public boolean arrayFront9(int[] nums) {
int i = 0;

  for(i=0;i<4; i++) {
  if(nums[i]==9) return true;

  }
  return false;

}

示例输出:

arrayFront9({1,2,9,3,4})将返回true。

为什么这不总是返回false?如果首先运行for循环并为第3个索引返回true,但是对于第4个(最后一个索引检查)则返回false,那么for循环是否应该返回false?或者在找到9后循环退出?还有一个&#34;返回false;&#34;在for循环之后的行,为什么这不会自动覆盖for循环输出的任何值?我的理解是Java一次执行一行代码,因此它会读取返回false并返回false,因为它是最后一行代码。

2 个答案:

答案 0 :(得分:2)

执行return语句时,会立即退出当前方法。

答案 1 :(得分:0)

一旦for循环到达array中的第3个元素(即9 return true,它将breakfor {{1}}循环并停止执行其后的内容