others - Java - 在循环中缺少返回语句

我可以找到类似的问题,但是我找不到这个例子的答案。


public int getIndex(){


 for(int x = 0; x < 5; x++) {


 return x;


 }


}



执行此代码时,出现了"Missing return statement"编译错误。

时间:

这是因为JVM不知道你在循环中使用了条件中断。例如:


public static int getIndex(){


 for(int x=0; x<5;x++){


 if(x<5) continue;


 return x;


 }


 return 6;


}



这里很明显,如果没有在循环外返回,可能会错过循环内的return语句,

你可以将它改一下 - 而不会出现编译错误:


public static int getIndex() {


 int x = 0;


 do {


 return x++; 


 } while (x < 5);


}



在编译时,这些条件是不可理解的,而在运行时,JVM可以理解它们,但是要编译代码,需要在for循环外有一个return语句,因此要得到编译的代码,你必须在理论上有一个返回语句。

...