20165212任胤第四周课上作业补做

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!.

感想:课上做不出来测试感觉很不爽,以后不会的了

原文地址:https://www.cnblogs.com/FenixRen/p/8646220.html