迭代和JDB
题目:
代码:
public class zuheshu {
public static void main(String[] args) {
int [] C = new int [2];
int sum,i;
for(i=0;i<args.length;++i) {
C[i] = Integer.parseInt(args[i]);
}
sum = diedai(C[0],C[1]);
if(sum == 0)
System.out.println("组合数错误");
else
System.out.println(sum);
}
public static int diedai (int n,int m) {
if(m==1)
return n;
else if(m==0||m==n)
return 1;
else if(n<m||n==0)
return 0;
else
return diedai(n-1,m-1)+diedai(n-1,m);
}
}
运行结果:
- 正常情况:
- 异常情况:
- 边界情况:
设计程序时存在的问题:
- 首先就是在编译时总是提是出现错误:
原因是args[]的类型为字符串型,因此需要命令Integer.parseInt(args[i])
将其转化为为整型。 - 开始将for循环的执行条件写成
i<2
编译无法通过
原因是Java中为args分配大小的默认是无限长的,如果使用具体的数字控制循环的执行可能存在数组越界的问题,为了避免这种问题需要用args.length
进行限制
JDB调试:
输入数据的命令为jdb -classpath zuheshu 12 3