20165202 week4课下补做

本文介绍了一个Java程序,该程序使用递归计算1!+2!+...+N!的和,并通过命令行接收输入。此外,还介绍了如何使用JDB调试工具进行调试,包括设置断点、单步执行等操作。

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对程序进行调试

    可以使用localsprinteval命令来查看变量的值。

    通过运行stop in HelloJDB.main命令在main方法开始处设置断点。

    单步跟踪命令nextstep在执行一般语句时没有区别,在执行有方法调用的语句时,next会把方法执行完,step会进入方法体。所以在调试时,单步执行要优先使用next,这样效率比较高。

    已经进入方法体,运行step up把方法执行完,返回调用处,后面执行一般语句。

    使用list来查看运行到了源代码的什么位置,HelloJDB.class文件和HelloJDB.java不在同一个文件夹下,需要使用use指出源代码的位置。

2.课上内容的补做结果截图

代码:

1297055-20180322200752577-1232701288.jpg
运行截图:

1297055-20180322200816537-1797044157.jpg
N=1 时的结果截图

1297055-20180323004046534-1093206502.jpg
N=2时的结果截图

1297055-20180323004052876-1368375333.jpg
N=3时的结果截图

1297055-20180323004104684-1106694792.jpg

3. 补做的代码链接

补做代码1297055-20180323004058948-1684442389.jpg

转载于:https://www.cnblogs.com/jhs888/p/8626170.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值