2 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超2個贊
如果你跟蹤你的程序,你會明白:
1)您為攝氏度輸入一個值,因此您的程序?qū)儆冢?/p>
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;
并且您嘗試在從未進(jìn)入過的“其他塊”中獲取此值:
else {
System.out.println("Please enter the temperature in Fahrenheit: ");
temperatureInF = scannerIn.nextDouble();
}
但你永遠(yuǎn)不會進(jìn)入那里。所以當(dāng)你聲明它時它可能被初始化為0。(0-32)*5/9 = -17.78°C。所以輸出是正確的。
但是您的編碼設(shè)計是錯誤的。
我希望這有幫助。

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