我正在尝试构建一个递归函数,如下所示:
我惊讶的是,在运行我的程序并调用这个函数后,编译器打印出以下内容:
private static int partition(int[] array, int low, int high, int pivot_index){
// just irrelevant code
System.out.println("Somehow this point has been reached 1");
if(low < high){
System.out.println("Somehow this point has been reached 2");
//some more code
partition(array,low,high,pivot_index);
}else{
System.out.println("Somehow this point has been reached 3");
//some more code
return high;
}
System.out.println("Somehow this point has been reached 0");
return -1;
}//partition
我惊讶的是,在运行我的程序并调用这个函数后,编译器打印出以下内容:
point 1 reached; point 2 reached; point 1 reached; point 3 reached. point 0 reached.
这返回了导致整个程序逻辑崩溃的-1
。我确定我错过了什么,但我的程序在if-else
语句后如何跳转。据我所知,没有情况下if-statement
不会被执行?