2 回答

TA貢獻1784條經驗 獲得超2個贊
如果你跟蹤你的程序,你會明白:
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 {
System.out.println("Please enter the temperature in Fahrenheit: ");
temperatureInF = scannerIn.nextDouble();
}
但你永遠不會進入那里。所以當你聲明它時它可能被初始化為0。(0-32)*5/9 = -17.78°C。所以輸出是正確的。
但是您的編碼設計是錯誤的。
我希望這有幫助。

TA貢獻1801條經驗 獲得超16個贊
你的計算是正確的。如果用戶輸入攝氏度,請不要轉換它。換句話說,攝氏溫度是 tempuratureInC 而不是 tempInCelsiusConvFromFahrenheit。
添加回答
舉報