System.out.println()与Java返回之间的差异

我试图理解在方法中使用System.out.println()return blah的区别和好处。

似乎System.out.println()用于显示静态信息, return是从方法return的值。 然而,我看到的示例如下所示,其中一个函数在System.out.println()语句中使用

 System.out.println(name.substring(1, 3)); 

什么时候使用System.out.println()return 。 是否可以在以后使用另一段代码return ,而System.out.println()不能?

你的最后一句话实际上是正确的,但这两项操作之间的区别是巨大的 ,所以我想对它们的差异进行更深入的解释。

区别:

return是一个控制程序执行流程的指令。 它是Java语法的基础部分。 它告诉计算机要执行的代码部分,以及执行期间要使用的值。 当您返回一个值时,您说“调用此方法的结果是XXXX”(“XXXX”是您返回的值)。

System.out.println不用于控制程序的执行方式。 这是告知用户程序内部情况的唯一方法。 System.out.println (简称syso)可以将任何信息打印到控制台; 它是变量,表达式还是方法调用的结果并不重要。 “静态”数据没有限制。

让我们看看他们两个在行动:

 int addInts(int arg0, int arg1) { return arg0 + arg1; } 

这意味着我们在程序中调用addInts ,它将评估其参数的总和。 因此,当我们编写addInts(3, 7) ,它就像在我们的源代码中简单地编写3 + 710 。 控制台上没有任何内容; 我们所做的就是给我们的程序一个计算某事的方法。

但是,如果他们只是坐在计算机内部,我们可能做出的任何计算最终都是无用的,所以我们需要一种方法来向用户显示这些信息。 输入syso:

 System.out.println(addInts(22, 16)); 

调用addInts方法并返回38.该值放在计算机内存中的某个位置,以便我们的程序可以找到它。

接下来,syso获取该值(38)并将其打印到控制台,让用户知道计算了什么值。 此程序没有计算任何新内容,我们的程序将继续下一个语句。

那我该用哪个?

在简单的程序中,您只有很少的值来跟踪它,您可能很想打印出您想要知道的所有内容。 例如,如果你正在编写一个程序来做你的代数作业(我去过那里)并且你写了一个方法来解决二次方程式,那么可能很容易像这样构造它:

 class Algebra { static void quadSolve(double a, double b, double c) { double result = /* do math... we're ignoring the negative result here*/; System.out.println("The solution to the quadratic equation is: " + result); } public static void main(String[] args) { quadSolve(1.0, -6.0, 9.0); } } 

但是,如果您想让程序更复杂一点,这种方法很快就会成为一个非常糟糕的主意。 假设有一个问题需要您解决二次方程,然后使用该计算的结果来计算圆柱体积。 在上面的例子中,我们不能这样做:在我们通过syso将result的值转储到控制台之后,当quadSolve方法结束时它会消失。 如果我们有quadSolve返回result并让“调用者”(调用quadSolve的地方)处理该值,那quadSolve 。 这是一个更灵活的设计,使我们可以相对轻松地使我们的程序更复杂。 这种增加的灵活性和模块化实际上是使方法有用的原因。 这是实施:

 class Algebra { static double quadSolve(double a, double b, double c) { double result = /* do math... we're ignoring the negative result here*/; return result; } public static void main(String[] args) { double x = quadSolve(1.0, -6.0, 9.0); //now we can do whatever we want with result: //print it, negate it, pass it to another method-- whatever. System.out.println("The solution to the quadratic equation is: " + x); System.out.println("And it's square is: " + (x * x)); } } 

我希望这可以解决问题。 随意询问您是否需要进一步澄清。

method通常返回一个value (通过使用return语句完成)。

可以通过System.out.println()引用将信息“打印”到输出流。

它们都有它们的用途……通常是正交的。

他们彼此之间没什么关系。


System.out.println()用于将字符串输出到控制台/终端。 所以

 System.out.println("Hello world"); 

应输出字符串"Hello world"


return是Java中的一个语句,用于返回调用该方法并传回值的代码。

 public static int add(int a, int b) { return a + b; // go back to method that called this method (main) } public static void main(String[] args) { int sum = add(3,4); // the return result (7) is stored in sum }