第四周课堂测试
知识点:命令行参数(字符串改变为int型输入),递归,利用jdb进行调试
一开始写的时候利用了for循环
for(int t:tmp){
int sum=0;
if(t<0)
System.out.println("wrong");
else{
for(int i=1;i<=t;i++){
int a=1;
for(int j=1;j<=i;j++){
a=a*j;
}
sum=sum+a;
}
if(sum<0)
System.out.println("溢出");
else
System.out.println(sum);
虽然输出结果相同,但是在jdb执行中无返回值,不符合题意,改为
for(int i=0; i<args.length; i++) {
tmp[i] = Integer.parseInt(args[i]);
}
int sum = 0;
for (int i=1;i<=tmp[0];i++) {
sum += fact(i);
}
System.out.println(sum);
}
public static int fact(int n) {
if (n == 0)
return 1;
else
return n * fact(n-1);
}
}
jdb调试如下图
需要先用-g编写才能使用locals查看本地变量
使用next和step来单步调试