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。
添加回答
举报