Если вы проследите свою программу, вы поймете:
1) Вы вводите значение в градусах Цельсия, поэтому ваша программа попадает в:
if (temperatureScale.equals("c")) {
System.out.println("Please enter the temperature in Celsius: ");
temperatureInC = scannerIn.nextDouble();
}
, затем вы пытаетесь отобразить значение для температурыв градусах Цельсия:
System.out.println("Temperature in Celsius: " + tempInCelsiusConvFromFahrenheit + '°');
, и вы пытаетесь сделать это, получая значение для переменной tempInCelsiusConvFromFahrenheit
.
Однако вы пытаетесь заполнить переменную tempInCelsiusConvFromFahrenheit
значением в
tempInCelsiusConvFromFahrenheit = (temperatureInF - 32) * 5/9;
и вы пытаетесь получить это значение в "Else Block", в которое вы никогда не попадали:
else {
System.out.println("Please enter the temperature in Fahrenheit: ");
temperatureInF = scannerIn.nextDouble();
}
, но вы никогда не попадете туда.Так что, вероятно, он инициализируется как 0, когда вы объявляете это.И (0-32) * 5/9 = -17,78 ° С.Таким образом, вывод правильный.
Но ваш дизайн кодирования неправильный.
Надеюсь, это поможет.