Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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,为了打印factorial的值,我想在fact()函数中使用fact的值。我怎样才能做到这一点 我尝试在fact()函数中声明变量I和fact public class Factorial { int fact=1; int n=5,i=1; void facto() { for(i=n;i>=1;i--) { fact=fact*i; } } public st

为了打印factorial的值,我想在fact()函数中使用fact的值。我怎样才能做到这一点

我尝试在fact()函数中声明变量I和fact

public class Factorial {
    int fact=1;
    int n=5,i=1;

    void facto()
    {

        for(i=n;i>=1;i--)
        {
            fact=fact*i;
        }

    }

    public static void main(String args[])
    {
        Factorial obj1= new Factorial();
        System.out.println(obj1.fact);
    }
}

我得到的答案是它从类中得到的值,并用1初始化。我想得到120作为解决方案。

不要使用字段。使用参数和返回值

public class Factorial {
    private int facto(int n) {
        int fact = 1;
        for (int i = n; i >= 1; i--) {
            fact = fact * i;
        }
        return fact;
    }

    public static void main(String args[]) {
        Factorial obj1 = new Factorial();
        System.out.println(obj1.facto(5));
    }
}

不要使用字段。使用参数和返回值

public class Factorial {
    private int facto(int n) {
        int fact = 1;
        for (int i = n; i >= 1; i--) {
            fact = fact * i;
        }
        return fact;
    }

    public static void main(String args[]) {
        Factorial obj1 = new Factorial();
        System.out.println(obj1.facto(5));
    }
}

Void函数是指不返回任何值的函数,因此使用Void函数是错误的

public class Factorial {
    int fact=1;
    int n=5,i=1;

    void facto()
    {

        for(i=n;i>=1;i--)
        {
            fact=fact*i;
        }

    }

    public static void main(String args[])
    {
        Factorial obj1= new Factorial();
        System.out.println(obj1.fact);
    }
}
如果要从方法中获取值。您应该使用一种可以返回值的方法,如下所示:

public class Factorial {


    public int facto()
    {
    int fact=1;
    int n=5,i=1;

        for(i=n;i>=1;i--)
        {
            fact=fact*i;
        }
     return fact;
    }

    public static void main(String args[])
    {
        Factorial obj1= new Factorial();
        System.out.println(obj1.facto());
    }
}
ps:我已将变量的位置更改为事实()方法的作用域,并警告@Idle\u Mind。
因为这有一个轻微的副作用,如果您多次调用factor(),您将得到不同的结果。要“修复”此问题,您可以在事实()中将“事实”重新初始化为1。Void函数表示不返回任何值的函数,因此使用Void函数是错误的

public class Factorial {
    int fact=1;
    int n=5,i=1;

    void facto()
    {

        for(i=n;i>=1;i--)
        {
            fact=fact*i;
        }

    }

    public static void main(String args[])
    {
        Factorial obj1= new Factorial();
        System.out.println(obj1.fact);
    }
}
如果要从方法中获取值。您应该使用一种可以返回值的方法,如下所示:

public class Factorial {


    public int facto()
    {
    int fact=1;
    int n=5,i=1;

        for(i=n;i>=1;i--)
        {
            fact=fact*i;
        }
     return fact;
    }

    public static void main(String args[])
    {
        Factorial obj1= new Factorial();
        System.out.println(obj1.facto());
    }
}
ps:我已将变量的位置更改为事实()方法的作用域,并警告@Idle\u Mind。
因为这有一个轻微的副作用,如果您多次调用factor(),您将得到不同的结果。要“修复”这个问题,您可以在fact()内将“fact”重新初始化为1。“我想得到120作为解决方案”,这只有在调用
fact
方法时才会发生。这似乎是这里的关键点,不是吗?这主要不是为了访问结果,而是需要运行生成结果的代码,而不是调用函数。称之为方法。“我想得到120作为解决方案”,这只有在你调用
fact
方法时才会发生。这似乎是这里的关键点,不是吗?这主要不是为了访问结果,而是需要运行生成结果的代码,而不是调用函数。请注意,这有一个轻微的副作用,如果您多次调用
factor()
,您将得到不同的结果。若要“修复”此问题,您可以在
fact()
内将“fact”重新初始化为1。请注意,这有一个轻微的副作用,即如果您多次调用
fact()
,您将得到不同的结果。要“修复”此问题,您可以在
fact()
内将“事实”重新初始化为1。