System.out.println()与Java返回之间的差异
作者:互联网
我试图理解在方法中使用System.out.println()与return blah的区别和好处.
似乎System.out.println()用于显示静态信息,return是从方法返回的值.然而,我看到的示例如下所示,其中一个函数在System.out.println()语句中使用
System.out.println(name.substring(1, 3));
什么时候使用System.out.println()并返回.是否可以在以后使用另一段代码返回,而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 7或10一样.没有任何东西打印到控制台;我们所做的就是给我们的程序一个计算某事的方法.
但是,如果他们只是坐在计算机内,我们可能做出的任何计算最终都是无用的,所以我们需要一种方法来向用户显示这些信息.输入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将结果的值转储到控制台之后,当quadSolve方法结束时它会消失.如果我们有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));
}
}
我希望这可以解决问题.随意询问您是否需要进一步澄清.
标签:java,return,return-value,system-out 来源: https://codeday.me/bug/20190918/1811149.html