20165212任胤 第四周课上测试补做
题目:jdb调试递归循环程序
程序代码:
import java.util.Arrays; public class B { public static void main(String [] args) { if(args.length < 1){ System.out.println("Usage: java CLSumRecursion num1 num2 ..."); System.exit(0); } int m = Integer.parseInt(arg[0]) int sum=0; int i; for(i=1;i<=m;i++) { sum=sum+fact(i); } System.out.println(sum); } public static int fact(int n){ if (n==0) return 1; else return n*fact(n-1); } }
未能完成原因分析:
- 我在课上完成了自己写循环递归程序的任务,用的是 Scanner 语句,而我在课下调试过程中发现 Scanner 语句使用 jdb 调试时无法读取输入.
- 上周课下学习疏忽,导致调试过程生疏,各种不熟练,很僵硬.
- 当时不会使用 Integer 语句.
说明:上面的这个程序是我拷贝娄老师博客上面的,不是我自己写的.运行结果我就不贴出来了,只贴出调试结果.
m为给定值,i为当前执行到的数值,sum为当前阶乘之和
m=3
m=5,并运行几步
m=8,但只运行到1!+2!+3!+4!+5!+6!.