当前位置: 首页 > 知识库问答 >
问题:

系统之间的差异。出来println()和Java中的return

商夜洛
2023-03-14

我试图理解使用系统的区别和好处。出来println()vs.在方法中返回blah

似乎System.out.println()用于显示静态信息,而返回是从方法返回的值。然而,我看到了像下面这样的例子,其中函数System.out.println()语句中使用

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

何时使用系统是正确的。出来println()返回。是不是return以后可以被另一段代码使用,而系统。出来println()不能吗?


共有3个答案

谭绍晖
2023-03-14

他们彼此关系不大。

系统。出来println()用于将字符串输出到控制台/终端。所以

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

应输出字符串“Hello world”

返回是一个语句,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
}
董胡媚
2023-03-14

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

信息可以通过系统“打印”到输出流。出来println()引用。

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

穆城
2023-03-14
匿名用户

您的最后一句话实际上是正确的,但这两个操作之间的区别很大,因此我想对它们的区别进行更深入的解释。

return是控制程序执行流程的指令。它是Java语法的基本部分。它告诉计算机要执行代码的哪一部分,以及在执行过程中要使用哪些值。当您返回一个值时,表示“调用此方法的结果是XXXX”(其中“XXXX”是您返回的值)。

系统。出来println不用于控制程序的执行方式。这只是告知用户程序内部正在发生的事情的一种方式<代码>系统。出来println(简称syso)可以将任何信息打印到控制台;不管它是变量、表达式还是方法调用的结果。对“静态”数据没有限制。

让我们看看他们在行动中:

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

这意味着在我们的程序中调用加法器,它将计算为其参数之和。因此,当我们编写附加项(3,7)时,就好像我们在源代码中只编写了3710。控制台上没有打印任何内容;我们所做的只是给我们的程序一种计算方法。

然而,如果我们所做的只是坐在计算机内部,那么我们可能进行的任何计算最终都是无用的,因此我们需要一种向用户显示这些信息的方法。输入syso:

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

调用addents方法并返回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的位置)处理该值,这将更有意义。这是一个更加灵活的设计,允许我们相对轻松地使程序更加复杂。这种增加的灵活性和模块性使方法变得非常有用。以下是实施方案:

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));
    }
}

我希望这能把事情弄清楚。请随时询问您是否需要进一步澄清。

 类似资料:
  • 基本上,我想知道哪种方法更适合练习, 或 或者还有我不知道的更好的方法吗?

  • 本文向大家介绍数字和模拟系统之间的差异。,包括了数字和模拟系统之间的差异。的使用技巧和注意事项,需要的朋友参考一下 数字和模拟系统均用于将信号从一个地方传输到另一个地方,例如音频/视频。数字系统使用二进制格式(0和1),而模拟系统使用幅度变化的电子脉冲发送数据。 以下是数字系统和模拟系统之间的一些重要区别。 。 序号 键 数字系统 模拟系统 1个 信号类型 模拟系统使用大小变化的连续信号。 2 波

  • 本文向大家介绍FAT32,exFAT和NTFS文件系统之间的差异。,包括了FAT32,exFAT和NTFS文件系统之间的差异。的使用技巧和注意事项,需要的朋友参考一下 操作系统的文件系统提供了一种组织文件和管理驱动器的方法。它指定如何以文件和文件夹的形式存储数据,并提供有关文件的元数据,例如名称,权限,大小和其他属性。FAT32,exFAT和NTFS是Windows操作系统使用的文件系统。FAT3

  • 我需要为一个设计糟糕的旧应用程序编写JUnit测试,该应用程序正在向标准输出写入大量错误消息。当方法正确运行时,它将返回一个XML响应: 但当它得到格式错误的XML或不理解请求时,它会返回,并将一些内容写入标准输出。 在JUnit中是否有任何方法断言控制台输出?要捕获以下情况:

  • 度量可以度量一些有用的领域,但是有什么区别和联系呢?

  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。