迭代和JDB

迭代和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




posted @ 2019-03-29 15:08  5209wzh  阅读(171)  评论(0编辑  收藏  举报