加法答案错误

public class Container {

    private int value;

    public Container(int value){

        this.value=value;

    }

    public int getValue(){

        return this.value;

    }

    public int sum(Container c){

        return this.value+c.getValue();

    }

    public void main(){

        Container c1=new Container(1);

        Container c2=new Container(2);

        System.out.println("sum: " + c1.getValue()+c2.getValue());

        System.out.println("sum: " + c1.sum(c2));

    }

}

当我运行此代码时,我得到以下结果:


sum: 12

sum: 3

预期是:


sum: 3

sum: 3

有谁知道我为什么会得到这些结果?


暮色呼如
浏览 55回答 1
1回答

墨色风雨

当您将+运算符与 a一起使用时String,它会将其视为连接,而不是加法,并且 Java 从左到右计算运算,因此"sum: " + c1.getValue()+c2.getValue()计算结果为"sum: " + 1 + 2"sum: 1" + 2"sum: 12"如果您希望先进行整数加法,则需要添加括号:System.out.println("sum: " + (c1.getValue() + c2.getValue()));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java