经过
昨天下午写作业时发现一个奇怪点,就是关于int型数据的返回值的一个问题。
public class Test {
public static void main(String[] args) {
method1(1,2);
};
public static void method1(int n, int m) {
n += m;
method2(3.4);
}
public static int method2(double n) {
if (n > 0) return 1;
else if (n == 0) return 0;
else if (n < 0) return -1;
}
}
我的3个return的判断条件已经包含了所有n的取值范围。但编译却不通过。而且显示
结果
我翻看书,最后发现这是由于Java编辑器的判断造成的。
还有一种办法就是再加一个return就行。虽然这个return永远不会被调用,但是编辑器就知道了所有的情况都可以有返回值。
public class Test {
public static void main(String[] args) {
method1(1,2);
};
public static void method1(int n, int m) {
n += m;
method2(3.4);
}
public static int method2(double n) {
if (n > 0) return 1;
else if (n == 0) return 0;
else if (n < 0) return -1;
return 0;
}
}