java中满足所有判断条件的3个if与if, else if, else
我们来举个例子,就是判断旋转数组中判断最小值
package work2;
import java.util.Scanner;
public class RotationArrayMinElement {
public static int getMin(int[] array) {
if (null==array) {
return -1;
}else {
return getMin(array,0,array.length-1);
}
}
public static int getMin(int[] array, int low, int high) {
if (high<low) {
return array[0];
}
else if (high==low) {
return array[low];
}
else {
int mid = (low+high)/2;
if (array[mid]>array[mid+1]) {
return array[mid+1];
}else if (array[mid-1]>array[mid]) {
return array[mid];
}else if(array[high]>array[mid]) {
return getMin(array,low,mid-1);
}else if(array[low]>array[mid]) {
return getMin(array,mid+1,high);
}else {
return Math.min(getMin(array,low,mid-1), getMin(array,mid+1,high));
}
}
}
public static void main(String [] args) {
Scanner sc= new Scanner(System.in);
int []array1 = {5,6,1,2,3,4};
System.out.println((int)2.7);
System.out.println(getMin(array1));
}
}
在getMin(int[] array, int low, int high)函数中,如果把high与low的判断改为3个if,就会报错,要求add return statement
有人能解释一下为啥吗