Java语言中的复合运算符会自动进行类型转换
计算1/1-1/2+1/3+……+1/99-1/100
public class LoopControlExercise08{ public static void main(String[] args){ int sum = 0; for (int i = 1; i <= 100 ; i++) { if (i % 2 == 0) { sum -= (1.0 / i); }else{ sum += (1.0 / i); } } System.out.println(sum); } }
运行结果如下所示:
经过查阅资料得知复合运算符会自动进行类型的转换才得到这个结果。
要得到正确的答案,只需要修改一下sum的类型即可,本例中修改为double类型。
public class LoopControlExercise08{ public static void main(String[] args){ double sum = 0; for (int i = 1; i <= 100 ; i++) { if (i % 2 == 0) { sum -= (1.0 / i); }else{ sum += (1.0 / i); } } System.out.println(sum); } }
结果如下所示: