Obi*_*obi 9 java return return-value system.out
我试图了解在方法中使用System.out.println()vs的好处和好处return blah.
它似乎System.out.println()用于显示静态信息,并且return是从该方法返回的值.然而,我正在看下面的例子,其中一个函数在System.out.println()语句中使用
System.out.println(name.substring(1, 3));
Run Code Online (Sandbox Code Playgroud)
什么时候使用System.out.println()和return.是否return可以在以后使用另一段代码,而System.out.println()不能?
App*_*ish 21
你的最后一句话是有效的,但这两项操作之间的区别是巨大的,所以我想更深入地解释它们之间的差异.
return是一个控制程序执行流程的指令.它是Java语法的基础部分.它告诉计算机要执行的代码部分,以及执行期间要使用的值.当您返回一个值时,您说"调用此方法的结果是XXXX"("XXXX"是您返回的值).
System.out.println不用于控制程序的执行方式.这是告知用户程序内部情况的唯一方法.System.out.println(简称syso)可以将任何信息打印到控制台; 它是变量,表达式还是方法调用的结果并不重要."静态"数据没有限制.
让我们看看他们两个在行动:
int addInts(int arg0, int arg1)
{
return arg0 + arg1;
}
Run Code Online (Sandbox Code Playgroud)
这意味着我们addInts在程序中调用它,它将评估其参数的总和.因此,当我们编写时addInts(3, 7),它与简单编写3 + 7或10在我们的源代码中一样.没有任何东西打印到控制台; 我们所做的就是给我们的程序一个计算某事的方法.
但是,如果他们只是坐在计算机内,我们可能做出的任何计算最终都是无用的,所以我们需要一种方法来向用户显示这些信息.输入syso:
System.out.println(addInts(22, 16));
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您想让程序更复杂一点,这种方法很快就会成为一个非常糟糕的主意.假设有一个问题需要您求解二次方程,然后使用该计算的结果来计算圆柱体积.在上面的例子中,我们不能这样做:在我们result通过syso 将值转储到控制台之后,它会在quadSolve方法结束时消失.如果我们quadSolve返回result并让"调用者"(调用的地方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));
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这能解决问题.随意询问您是否需要进一步澄清.
A method经常返回一个value(通过使用该return语句完成).
可以通过System.out.println()引用将信息"打印"到输出流.
它们都有它们的用途......通常是正交的.
| 归档时间: |
|
| 查看次数: |
24306 次 |
| 最近记录: |