奇怪的java打印输出

发布于 2024-12-22 04:55:37 字数 355 浏览 1 评论 0原文

我是 Java 新手,正在处理简单的打印。首先,我执行:

System.out.println(1 + 2 + "3");

输出:33

我编写了将 1 和 2 添加到一起并按原样打印 3 的逻辑。

然后,我尝试了这个:

System.out.println ("1" + 2 + 3);

输出:123

应用该逻辑我得到了答案 15 ,无法计算出正确的答案,所以我需要你的帮助,所以朋友们。

I am new to Java and was working with simple printing. First, I executed:

System.out.println(1 + 2 + "3");

Output:33

I made up logic that 1 and 2 will be added and 3 will be printed as is.

Then, I tried this:

System.out.println ("1" + 2 + 3);

Output:123

Applying that logic I got answer 15 ,couldn't work-out the correct answer, so I need your help, SO friends.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

生生漫 2024-12-29 04:55:37

运算符 + 从左侧计算,因此您的第二个示例将这样解释:

System.out.println (((“1”+2)+3));
====================> "12"+3
====================> "123"

如果您想显示 15 那么您应该执行以下操作:

System.out.println (“1”+(2+3));

这样 (2 +3) 将首先被评估。

Operator + is evaluated from the left so your second example is interpreted this way:

System.out.println (((“1”+2)+3));
====================> "12"+3
====================> "123"

If you want to display 15 then you should do the following:

System.out.println (“1”+(2+3));

This way (2+3) will be evaluated first.

垂暮老矣 2024-12-29 04:55:37
  1. 表达式1 + 2是一个int
    然后将 "3" 连接到该 int。

  2. 表达式“1”+ 2是一个字符串
    然后,您将 3 连接到该 String

您正在考虑 "1" + (2 + 3),但这不会发生,因为 Java 是左关联的。

  1. The expression 1 + 2 is an int.
    You're then concatenating "3" to that int.

  2. The expression "1" + 2 is a String.
    You're then concatenating 3 to that String.

You're thinking of "1" + (2 + 3), which doesn't happen because Java is left-associative.

倦话 2024-12-29 04:55:37

在第一种情况下,Java 将数字相加得到结果 3,并且附加字符串 3 使其成为连接字符串:“33”。

在第二种情况下,结果是一个字符串,因为“1”和其他字符串连接起来成为“123”

In the first case Java adds the numbers to get the result 3 and the appending of the string 3 causes it to become the concatenated string: "33".

In the second case the result is a string because of the "1" and the others get concatenated to become "123"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文