Java基础 return训练 注释里 returen i放到for循环里面可以输出,return -1 放到for里面会提示无返回值?


public static int search(int[] arr, int a) {

        /*for (int i = 0; i < arr.length; i++) {
            if (a == arr[i]) {
                return i;
            } else {
                returen - 1;
            }
        }*/


       

        for (int i = 0; i < arr.length; i++) {
            if (a == arr[i]) {
                return i;
            }
        }
        return -1;
    }

return都放到for循环后,无法保证一定进入for循环,因此编译无法通过。原因很简单,就如上面得例子,进入for循环得条件是i < arr.length,但如果你得数组长度为0,很明显无法进入到for循环体类,因此没有返回值