Java中的因子类

时间:2014-02-11 14:17:25

标签: java factorial

您好我正在为课程做一些工作。所以我做了这个代码。但是,如何在x number is < 0时停止返回号码?

public class Factorial {

    public Factorial() {
        System.out.print(new C1().computeFac(10));
    }      

    /** First addicional class **/
    private class C1 {

        /** Fields **/
        private int a,result = 1;

        /** Method **/
        public int computeFac(int input) {

            if (input < 0) {
                System.out.print(new C2().printError(0));
            } else {

                for ( a = 1 ; a <= input ; a++ )

                    result = result*a;
                return (result);
            } 
            return (result);            
        }
    }

    /** Second Addicional class **/
    private class C2 {

        /** Fields **/
        String errosArray[] = {"Negative numbers are not aceptable! \nPlease try again!\n"};

        public String printError(int a) {
            return errosArray[a];
        }

    }

    /** Main Method **/
    public static void main(String [ ] args) {
        Factorial factorial = new Factorial();
    }

}

1 个答案:

答案 0 :(得分:3)

通常的做法是在此时抛出异常。所以你的代码看起来像是:

        public int computeFac(int input) {
            if (input < 0) {
                throw new IllegalArgumentException("Negative numbers are not allowed");
            }
            for ( a = 1 ; a <= input ; a++ ) {
                result = result*a;
            }
            return result;
        }

另外,请注意,总是使用大括号来表示循环和条件,这是一个好主意,即使它们只有一行。