使用if else语句返回

时间:2020-05-06 05:10:49

标签: if-statement methods return


import java.util.Scanner;

public class PracticeQuestionWK4 {
    private static double computeDifference(double first, double second) {
        if (first <= second) {
            System.out.println("First double must be greater than second double, please try again.");
        } else {
            System.out.println(first - second);
        }
        return first - second;
    }

    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        System.out.print("Enter first double: ");
        double firstDouble = myScanner.nextDouble();
        System.out.print("Enter second double: ");
        double secondDouble = myScanner.nextDouble();
        computeDifference(firstDouble, secondDouble);
    }

}

此代码感到尴尬。有没有在这里使用private static double而不是private static void的目的?我正在回答的问题要求回报,但这似乎是多余的。我该怎么办?编辑:对不起,这个问题也要求打印功能也在其中

1 个答案:

答案 0 :(得分:0)

这是一种计算功能,您只需使用其结果即可。

double result = computeDifference(firstDouble, secondDouble);
System.out.print("Result: " + result);

在函数内部,通常应该没有输出。 按照惯例,对于真正错误的函数参数,应该抛出一个异常:

private static double computeDifference(double first, double second) {
    if (first <= second) {
        throw new IllegalArgumentException(
                "First double must be greater than second double: "
                + first + " and " + second);
    }
    return first - second;
}

在这种情况下,可以在呼叫之前 检查参数。

使用此类功能不应使控制台输出混乱的输出。 (这也会减慢计算速度。) 引发异常,中止应用程序,例如除以零, 是 fail-fast 的一种形式。允许开发人员快速查找和修复错误。 这意味着必须首先检查输入。

如果仍然不教授异常(假设您正在学习程序员的课程), 那么只有在错误情况下才执行println,并返回0或类似的值。