Возврат с помощью операторов if else - PullRequest
0 голосов
/ 06 мая 2020

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);
    }

}

Этот код кажется неудобным. Есть ли здесь цель использования частного stati c double вместо private stati c void? Вопрос, на который я отвечаю, требует возврата, но он кажется лишним. Что я должен делать? РЕДАКТИРОВАТЬ: Извините, вопрос также требует, чтобы в нем была функция печати

1 Ответ

0 голосов
/ 06 мая 2020

Это функция вычисления, вы должны просто использовать ее результат.

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 или что-то подобное. .

...