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

Java 使用return的正确方法是什么?,java,int,return,output,Java,Int,Return,Output,我知道这个程序很草率,但我不确定我是否正确使用了return。我试图找到一种方法来打印main方法中长度为的正方形/立方体/超立方体,但是变量不会“结转”到output() 您需要将这些值传递给输出方法,以便可以在那里使用它。像这样的 // In main - values returned by the methods is sent to the output method output(p.square( length ), p.cube( length ), p.hypercube( l

我知道这个程序很草率,但我不确定我是否正确使用了return。我试图找到一种方法来打印main方法中长度为的正方形/立方体/超立方体,但是变量不会“结转”到output()


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

// 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) { 

他们回来了。但您没有收到它们。

为了澄清起见,请将它们指定给变量,例如

int i = p.square( length );
int j = p.cube( length );
int k = p.hypercube( length );
现在您可以打印
i、j、k

直接打印它们就像

System.out.println(p.square( length ));
就像聪明的剩余。

应该是这样的

// 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) { 

公共静态无效输出(int a、int b、int c){ 系统输出println(a,b,c)

}


首先,您需要分配返回值

int squareResult = p.square( length );
int cubeResult = p.cube( length );
int hypercubeResult = p.hypercube( length );
然后需要将它们作为参数传递:

output(squareResult, cubeResult, hypercubeResult);
您的
输出
方法应该如下所示:

public static void output(int squareResult, int cubeResult, int hypercubeResult) {
    // ...
}
public static void output(int length)
{
    int sHypercube = hypercube(length);
    System.out.println(sHypercube);
}
有些人可能会告诉你使用字段,但要抵制这样做的诱惑。将状态引入实用程序函数会带来麻烦。

您有两种选择

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

private int sHypercube;
为你们班干杯。然后,您可以使用输出方法的代码,因为您已经编写了它

第二个选项是保留所有用于计算的方法,并将返回值保存在输出方法的变量中。也就是说,类似这样的事情:

public static void output(int squareResult, int cubeResult, int hypercubeResult) {
    // ...
}
public static void output(int length)
{
    int sHypercube = hypercube(length);
    System.out.println(sHypercube);
}

如果您需要有关变量范围的更多信息,请使用google it或查看(这是我在google上找到的第一件事)

什么是“正确使用return”?Java使用静态范围。这意味着一个变量的可见性不是由它是否在执行的早期被赋值来定义的,而是由它是在同一个范围内声明还是在周围的范围内声明来定义的。粗略地说,如果它是在周围的花括号中定义的,在你尝试使用它之前,它是可以的。