先直接上一段代码
public class MethodTest01{public static void main(String[] args){
}
public static int test(){
boolean flag = true;
if(flag = true){
return 1;
}
}
}
初一看好像并没有什么问题,在test方法中也有返回值,但是在编译后:
并没有返回值。。。
在test()方法中,编译器只能识别flag是一个boolean类型,但是不能识别字面值,不能识别到底是true还是false,所以编译器认为可能执行,也可能不执行,所有编译器为了确保程序正确性,提示错误。
修改后:
第一种修改
public class MethodTest01{public static void main(String[] args){
}
public static int test(){
boolean flag = true;
if(flag = true){
return 1;
}else{
return 0;
}
}
}
第二种修改
public class MethodTest01{public static void main(String[] args){
}
public static int test(){
boolean flag = true;
if(flag = true){
return 1;
}
return 0;
}
}
第三种修改使用三目运算符
public class MethodTest01{public static void main(String[] args){
}
public static int test(){
boolean flag = true;
return flag ? 1:0;
}
}
还没有评论,来说两句吧...