缺少返回语句

public class MethodTest05{
    public static void main(String[] args){
        
    }
    public static int m(){
        boolean flag=true; //编译器不负责运行,只负责讲道理
        if(flag){
            return 1;
        }
    }    
}

/*
上面代码会编译报错--错误: 缺少返回语句
上面返回值类型不是void,所以在方法执行结束之后,必须使用-return 值;没有则会编译报错
上面的程序有if,也就是有个判断,只有flag为true的时候,才会执行{}里的return语句,
但是对于编译器来说,知道falg是个布尔类型,对于编译器来说,falg有可能是true,也有可能是false,
那{}里的return语句,就有可能执行,也有可能不执行,这时编译器就无法确定这里的return一定会执行,
*/


//解决方案
/*加个else,这时就可以保证有个分支语句百分百的会得到执行
*/
public class MethodTest05{
    public static void main(String[] args){
        
    }
    public static int m(){
        boolean flag=true;
        if(flag){
            return 1;
        }else{
            return 2;
        }
    }    
}

 

posted on 2020-07-12 08:09  大王叫我来烧山  阅读(266)  评论(0)    收藏  举报

导航