迭代和JDB
迭代和JDB
题目要求
- 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能
- m,n 要通过命令行传入
- 提交测试运行截图(至少三张:正常如c(3,2)、异常如c(2, 3)、边界情况如c(m,m))
- 提交正常情况下用JDB调试程序c(X,2)的截图,X为学号最后一位+3,至少四张截图
- 把代码推送到码云
截图
相关知识点总结
JDB
-
vim 编译
-
进入第二个标签
使用javac -g -d bin src/exam1.java对程序进行编译。 -
Alt+3 进入第三个标签
使用jdb -classpath .:./bin exam1 11 2对程序进行调试。 -
stop in exam1.main
-
run
-
此时可以用locals命令查看变量,用step命令运行下一行代码
-
使用list来查看运行到了源代码的什么位置
exam1.class文件和exam1.java不在同一个文件夹下,我们需要使用use先指出源代码的位置use ./src -
exit退出
-
单步跟踪命令next和step在执行一般语句时没有区别,在执行有方法调用的语句时,next会把方法执行完,step
会进入方法体。所以在调试时,单步执行我们要优先使用next,这样效率比较高。
问题分析
当看到我当时并未按照老师要求完成的时候,我也有点懵,今早又按老师的要求重新做了一遍,因为有一段时间没有练习JDB,运行过程中出现了问题,当我输入locals时显示“本地变量信息不可用,请使用-g编译以生成变量信息”,后发现是我在使用JDB调试时,未将路径返回至exam2文件下,而是直接在src中进行的,改正后程序即可正确运行。出现的问题如下图,正确解决过程已放至截图中.
这次重新练习也帮我回忆了一遍JDB测试,同时也算一个提醒告诉我下次测试时要看清老师的每项要求。