这段代码报错是因为减法运算符 '-' 的优先级高于字符串连接符 '+',导致在输出语句中,减法运算先执行,而后面的字符串连接操作无法进行。可以通过在减法运算前后加上圆括号来解决这个问题。以下是修改后的代码:

public class Homework {
    public static void main(String[] args) {
        Number n = new Number(1,2);
        n.addition();
        n.subtration();
        n.multiplication();
        n.division();
    }
}

class Number{
    private int n1;
    private int n2;

    public Number() {
    }

    public Number(int n1, int n2) {
        this.n1 = n1;
        this.n2 = n2;
    }

    public int getN1() {
        return n1;
    }

    public int getN2() {
        return n2;
    }

    public void setN1(int n1) {
        this.n1 = n1;
    }

    public void setN2(int n2) {
        this.n2 = n2;
    }

    //加法
    public void addition(){
        System.out.println('相加结果为:' + (n1 + n2));
    }

    //减法
    public void subtration(){
        System.out.println('相减结果为:' + (n1 - n2));
    }

    //乘法
    public void multiplication(){
        System.out.println('相乘结果为:' + (n1 * n2));
    }

    //除法
    public void division(){
        if(this.n2 == 0){
            System.out.println('被除数不能为零');
            return;
        }else{
            double n3 = (double)n1;
            double n4 = (double)n2;
            System.out.println('相除结果为:' + (n3 / n4));
        }
    }
}

修改后的代码中,在输出语句中的减法、乘法和除法运算前后加上了圆括号,确保了运算的顺序。

Java 代码报错:减法运算优先级导致字符串连接错误

原文地址: https://www.cveoy.top/t/topic/wsd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录