конвертировать между градусами Цельсия и Фаренгейта, используя метод - PullRequest
0 голосов
/ 05 февраля 2020

пытается конвертировать, используя метод, но при запуске он ничего не делает, что я сделал не так?

java

    ...
    Scanner input = new Scanner(System.in);
    int selection = 0;

    switch selection {
    case 1:
        int k = input.nextInt();
        System.out.println(celsius(k));
        break;

    case 2:
        int j = input.nextInt();
        System.out.println(fahrenheit(j));
        break;
    }
    ...

public static double fahrenheit(double celsius) {
    double fahrenheit;
    fahrenheit = 9 / 5 * (celsius + 32);
    return fahrenheit;
}

public static double celsius(double fahrenheit) {
    double celsius;
    celsius = 5 / 9 * (fahrenheit - 32);
    return celsius;
}

    ...
    plpStyleData.setStatus(ActionResponseStatus.SUCCESS);
    return plpStyleData;
}

Ответы [ 3 ]

1 голос
/ 05 февраля 2020

Потому что selection = 0, поэтому переключатель не будет go в частях case 1: и case 2:. Возможно, вы захотите установить его на input.nextInt(), поэтому он сначала запросит ввод.

0 голосов
/ 06 февраля 2020
212F to C
C = (F - 32) * 5/9.
C = (212 - 32) * 5/9.
C =  180 * 5/9. = 100.

100C to F
F = (C * 9/5.) + 32.
F = (100 * 9/5.) + 32.
F = (180 + 32) = 212

Теперь для развлечения. Нужно получить как в виде (T - offset)*scale


C = (F - 32) * 5/9  

F = (C * 9/5) + 32
5/9F = C + 32*5/9 = C + 160/9.

F = (C + 160/9.)*9/5 

Генератор преобразования температуры. Возьмите константы и сгенерируйте временные преобразователи.

  BiFunction<Double,Double, DoubleFunction<Double>> temp = 
            (offset, scale) -> (t)->((int)((t - offset)*scale*1000)/1000.);

   DoubleFunction<Double> toCelsius = temp.apply(32., 5./9.);
   DoubleFunction<Double> toFahr = temp.apply(-160./9., 9./5.);

   System.out.println(toCelsius.apply(212));  //prints 100.
   System.out.println(toFahr.apply(37));      //prints 98.6
0 голосов
/ 05 февраля 2020

Это не правильно:

по Фаренгейту = 9/5 * (по Цельсию + 32)

(100 C + 32) * 9/5 = 237,6F Не правильно.

Должно быть:

(100 C * 9/5) + 32 = 212F

(212F - 32) * 5/9 = 100 C, поэтому эта часть верна.

...