1、tem2不随tem1改变的原因是,在do-while循环中,tem1的值改变后,tem2没有使用运算公式用新的tem1值来求更新其值,所以tem2的值就一直是第一次求得的值,可以在do-while循环中在tem1改变值后,tem2也利用公式来更新其值;
2、因为有负号以及数字的位数不相同而造成了占用的格数各不相同,可以使用格式字符串来对它们统一打印格式来进行对齐。
修改如下:
参考链接:
public class P71training7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int tem1=-30;
double tem2=tem1*9/5.0+32;
do {
System.out.printf("摄氏温度:%3d°C",tem1);// 摄氏温度数字占用的位数最多3位,所以用%3d来打印
System.out.printf("\t华氏温度:%5.1f°F\n",tem2); //华氏温度数字占用的位数最多5位,然后为了精度保留一位小数,所以用%5.1f来打印
tem1+=10;
tem2=tem1*9/5.0+32;// tem2在tem1更新值后也利用公式来求得新值
}while(tem1<=50);
}
}