if/else 静态方法中的语句问题
if/else statement issues within static methods
package geometrypack;
public class Calc {
public static double areaOfCircle(int radius) {
if (radius <= 0) {
System.out.println("Input cannot be a negative number.");
}
return (Math.PI * (radius * radius));
} // areaOfCircle method
public static double areaOfRectangle(int length,int width) {
if (length <= 0 || width <= 0) {
System.out.println("Input cannot be a negative number.");
}
return length * width;
} // areaOfRectangle method
public static double areaOfTriangle(int base, int height) {
if (base <= 0 || height <= 0) {
System.out.println("Input cannot be a negative number.");
}
return (base * height) * 0.5;
}
}
所以,我要做的就是让每个方法在打印错误消息时不在 return 区域。我想要它 return 区域或 return 错误消息。我尝试将 return 语句放在 else 语句中,但该方法不允许这样做。有什么建议吗?
你应该抛出异常。例如,
if (radius <= 0) {
throw new IllegalArgumentException("Input cannot be a negative number.");
}
或者在System.out.println
后的if
子句中加入return语句。
类似于:
if (radius <= 0) {
System.out.println("Input cannot be a negative number.");
return -1.0;
}
然后你可以查看-1.0的return值是否为错误结果。
让我们回到出现异常之类的东西之前的 C 编程时代。 :)
package geometrypack;
public class Calc {
public static double areaOfCircle(int radius) {
if (radius <= 0) {
System.out.println("Input cannot be a negative number.");
}
return (Math.PI * (radius * radius));
} // areaOfCircle method
public static double areaOfRectangle(int length,int width) {
if (length <= 0 || width <= 0) {
System.out.println("Input cannot be a negative number.");
}
return length * width;
} // areaOfRectangle method
public static double areaOfTriangle(int base, int height) {
if (base <= 0 || height <= 0) {
System.out.println("Input cannot be a negative number.");
}
return (base * height) * 0.5;
}
}
所以,我要做的就是让每个方法在打印错误消息时不在 return 区域。我想要它 return 区域或 return 错误消息。我尝试将 return 语句放在 else 语句中,但该方法不允许这样做。有什么建议吗?
你应该抛出异常。例如,
if (radius <= 0) {
throw new IllegalArgumentException("Input cannot be a negative number.");
}
或者在System.out.println
后的if
子句中加入return语句。
类似于:
if (radius <= 0) {
System.out.println("Input cannot be a negative number.");
return -1.0;
}
然后你可以查看-1.0的return值是否为错误结果。
让我们回到出现异常之类的东西之前的 C 编程时代。 :)