eclipse debug 工具的使用
链接:https://blog.csdn.net/qq_42505024/article/details/81139797
案例记录
计算1+2!+3!+…+19!+20!的值:
public class Q4 {
public static void main(String[] args) {
int i=0;
int x=1;
int sum=0;
for(i=0;i<20;i++) {
sum=sum+x;
x=x*(i+2);
}
System.out.println("1+2!+3!+...+20!的和为"+sum);
}
}
运行结果为:1+2!+3!+…+20!的和为268040729
估算可知值至少应该为十几位数,结果不合常理。检查程序逻辑没有问题,启用debug工具:
按F6逐步运行,观察变量变化,发现sum出现溢出现象:
将sum改成long之后,结果仍然不对,用同样的方法发现x也出现了溢出现象。
将两个变量都改成long后,运行成功:
public class Q4 {
public static void main(String[] args) {
int i=0;
long x=1;
long sum=0;
for(i=0;i<20;i++) {
sum=sum+x;
x=x*(i+2);
}
System.out.println("1+2!+3!+...+20!的和为"+sum);
}
}