gpt4 book ai didi

Java 字符串连接在 concat 1+1 上给出输出 2 等于 11 +"equals"+1+1

转载 作者:行者123 更新时间:2023-12-01 06:31:57 25 4
gpt4 key购买 nike

我用java编写代码并得到输出2等于11。我的代码是

public class StringPrct 
{
public static void main(String[]args)
{
String s= 1+1+" equals "+1 +1;
System.out.println(s);
}
}

现在的问题是为什么我没有得到 2 equals 2 的输出。

最佳答案

+ 运算符具有 same precedence whether it's addition or concatenation ,并从左到右关联。所以:

1 + 1 + " equals " + 1 + 1

评估为

(((1 + 1) + " equals ") + 1) + 1
((2 + " equals ") + 1) + 1
("2 equals " + 1) + 1
"2 equals 1" + 1
"2 equals 11"

如果你想覆盖它,你需要提供括号:

1 + 1 + " equals " + (1 + 1)

这变成:

((1 + 1) + " equals ") + (1 + 1)
(2 + " equals ") + (1 + 1)
"2 equals " + (1 + 1)
"2 equals " + 2
"2 equals 2"

为了清楚起见,您可能还应该将括号添加到第一个 1 + 1 中,这样阅读您代码的人就不必进行添加括号并向下求值的心理练习:

(1 + 1) + " equals " + (1 + 1)

关于Java 字符串连接在 concat 1+1 上给出输出 2 等于 11 +"equals"+1+1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36323910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com