1.相关知识点的总结
- 编程实现1!+2!+3!+... + N!的功能,N由命令行传入,比如类名为SumofRecur, java SumofRecur 8 给出1!+2!+3!+... + 8!的值
参考2016-2017-2 《Java 程序设计》课堂实践项目中关于循环、递归、命令行的相关内容,本题代码如下:public class SumofRecur { public static void main(String args[]) { int n = Integer.parseInt(args[0]); System.out.println(sum(n)); } public static int sum(int l) { int t =1; if(l==1) { return 1; } else { for(int i=1;i<=l;i++) { t=1; for(int j=1;j<=i;j++) { t=t*j; } } } return sum(l-1)+t; } }
JDB调试:参考使用JDB调试Java程序
使用
javac -g -d bin src/HelloJDB.java
对程序进行编译。javac中-g参数是为了产生各种调试信息。使用
jdb -classpath .:./bin HelloJDB
对程序进行调试可以使用
locals
、print
或eval
命令来查看变量的值。通过运行
stop in HelloJDB.main
命令在main方法开始处设置断点。单步跟踪命令
next
和step
在执行一般语句时没有区别,在执行有方法调用的语句时,next
会把方法执行完,step
会进入方法体。所以在调试时,单步执行要优先使用next
,这样效率比较高。已经进入方法体,运行
step up
把方法执行完,返回调用处,后面执行一般语句。使用
list
来查看运行到了源代码的什么位置,HelloJDB.class文件和HelloJDB.java不在同一个文件夹下,需要使用use
指出源代码的位置。
2.课上内容的补做结果截图
代码:
运行截图:
N=1 时的结果截图
N=2时的结果截图
N=3时的结果截图