使用return的正确方法是什么?

时间:2013-11-27 09:58:01

标签: java int return output

我知道程序很邋at但我不确定我是否正确使用了返回。我正在尝试找到一种方法来在main方法中打印长度的正方形/立方体/超立方体,但变量不会“延续”到output()。

    public class Power2
{
    public static void main(String[] args)
    {
        Power2 p = new Power2();

        int length = 6;

        p.square( length );
        p.cube( length );
        p.hypercube( length );

        output();


    }

    public int square( int length )
    {
        int sSquare =  (length*length) ;
        return sSquare;
    }

    public int cube( int length )
    {
        int sCube = (length*length*length);
        return sCube;
    }

     public int hypercube( int length )
     {
       int sHypercube = (length*length*length*length);
       return sHypercube;
     }


    public static void output()
    {
        System.out.println(sSquare);
        System.out.println(sCube);
        System.out.println(sHypercube);
    }
}

5 个答案:

答案 0 :(得分:3)

他们正在回归。但是你没有收到它们。

只是为了澄清,将它们分配给变量,如

int i = p.square( length );
int j = p.cube( length );
int k = p.hypercube( length );

现在您可以打印i ,j , k

直接打印它们

System.out.println(p.square( length ));

就像明智的剩下。

答案 1 :(得分:1)

您需要将这些值传递给输出方法,以便可以在那里使用它们。像这样的东西

// In main - values returned by the methods is sent to the output method
output(p.square( length ), p.cube( length ), p.hypercube( length )); // calling output method with the values to be printed

// Output method - signature changed to accept 2 input parameters
public static void output(int sSquare, int sCube, int sHypercube) { 

答案 2 :(得分:1)

应该是这样的

    int a= p.square( length );
    int b =p.cube( length );
    int c = p.hypercube( length );

    output(a,b,c);
     

     
    

public static void output(int a,int b,int c){              的System.out.println(A,B,C);

  
     

}

答案 3 :(得分:1)

首先,您需要指定返回值

int squareResult = p.square( length );
int cubeResult = p.cube( length );
int hypercubeResult = p.hypercube( length );

然后你需要将它们作为参数传递:

output(squareResult, cubeResult, hypercubeResult);

并且您的output方法应如下所示:

public static void output(int squareResult, int cubeResult, int hypercubeResult) {
    // ...
}

有些人可能会告诉你使用字段但是要抵制这样做的诱惑。将状态引入效用函数是在寻找麻烦。

答案 4 :(得分:1)

您有两种选择。

第一个是将您的sHypercube等变量声明为字段。这意味着您需要添加

private int sHypercube;

到你的班级。然后你就可以使用输出方法的代码了。

第二个选项是保留所有计算方法,并将返回值保存在输出方法的变量中。即像这样的东西:

public static void output(int length)
{
    int sHypercube = hypercube(length);
    System.out.println(sHypercube);
}

如果您需要有关变量范围的更多信息,可以google它或者查看this post(这是我在谷歌上发现的第一件事)