Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java阶乘打印错误值_Java - Fatal编程技术网

Java阶乘打印错误值

Java阶乘打印错误值,java,Java,我需要帮助做一项运动。我目前正在学习Java。我正在做一个阶乘练习,我的应用程序会提示用户一个数字,然后计算该数字的阶乘并返回显示 这是我的GUI类: public String factorial; public String fieldnumber; public String calculateFactorial() { fieldnumber = this.numberField.getText(); Number number = new Number(Integer

我需要帮助做一项运动。我目前正在学习Java。我正在做一个阶乘练习,我的应用程序会提示用户一个数字,然后计算该数字的阶乘并返回显示

这是我的GUI类:

public String factorial;
public String fieldnumber;

public String calculateFactorial() {
    fieldnumber = this.numberField.getText();
    Number number = new Number(Integer.parseInt(fieldnumber));
    System.out.print(number.toString());

    return number.toString();
}

private void calculateBtnActionPerformed(java.awt.event.ActionEvent evt) {                                                  
     System.out.println( this.calculateFactorial());
}
这是我的数字课:

public class Number {    
    private int number;
    int i,fact=1;

    public Number(int number){
        this.number = number;
    }

    public Integer getNumber(){
        return this.number;
    }

    public void setNumber(int number){
        this.number = number;
    }

    private Integer computeFactorial(){
        for(i=1; i<=number ;i++){    
            fact=fact*i;              
        }
      return this.fact;
    }

    public String toString() { 
        return Integer.toString(this.computeFactorial());
    }
}
公共类编号{
私有整数;
int i,事实=1;
公共号码(整数){
这个数字=数字;
}
公共整数getNumber(){
返回此.number;
}
公共无效集合号(整数){
这个数字=数字;
}
私有整数ComputeFactory(){

for(i=1;i在for循环之前,必须初始化fact=1;因为您调用了该方法两次

private Integer computeFactorial(){
      fact = 1;
      for(i=1; i<=number ;i++){    
        fact=fact*i;  
     }
      return this.fact;
}
private Integer computeFactorial(){
事实=1;

对于(i=1;它通过返回正确的值来工作,但该值仍在重复。就像factorial 6在calculateFactorial方法中给出720720一样,您可以调用System.out.print(number.toString());它打印720并返回number.toString();以calculateBtnActionPerformed第二次打印返回的值(720)