在使用java语言构造需要返回值的函数时,很多情况下return语句需要写在循环结构或分支结构中。初学java时,很可能会遇到明明在函数的中已经写了return语句,但还是报错,这种情况的原因如下:
java对需要返回值函数的要求是 函数中不仅一定要有return语句,并且无论在什么条件下调用此函数,return语句一定能被执行
正例 :
public static int test(int a,int b){
while (true) {
if(a<b){
return 1;
}else {
return -1;
}
}
}
这段函数的return语句无论在任何情况下都会被执行,所以不会产生error。
反例1:
public static int test(int j){
for(int i=0;i<j;i++){
return 0;
}
}
反例2:
public static int test(int j){
int i=0;
if(i<j){
return i;
}
}
以上两种例子中的return语句的执行可能性并不一定,具体是否会被执行到需要看接到的实参的情况。所以即使有可能能执行,但是执行的可能性并不一定的这种情况仍会报错!如果在大体结构不变的情况下让反例1不报错的话可以将改为死循环即for(;;){},这样return就会必然执行,error也随之消失。反例2也可在if后跟一else,else里面也写一return语句,这样必然会有一条return语句会被执行。
总结:java在需要返回值的函数中使用return语句时,一定要保证在函数中有一条return语句一定会被执行,这样程序才不会报错。
(java新入门小白自记录知识,若有错误请指正)