有人可以向我解释这段代码(简单)

Laz*_*zio -1 java

我有这两种方法.我理解"getTotalSalary"但却没有真正理解"getAverageSalary"的编写方式.我不明白为什么使用问号和冒号以及"(size()!= 0)"和最后的0.

这是编码:

public double getTotalSalary() {
    double total = 0;
    for (Employee e : empReg) {
        total = total + e.getSalary();
    }
    return total;
}

public double getAverageSalary() {      
    return (size() != 0) ? this.getTotalSalary() / this.size() : 0;
}
Run Code Online (Sandbox Code Playgroud)

empReg是ArrayList的名称.员工是由"姓名"和"薪水"组成的班级.getSalary显然是一种返回薪水的方法.

Law*_*llo 6

问号称为三元运算符,用于根据评估做出决策.它通常用于替换if语句,因为它们执行相同的操作.例如,将使用if语句编写:

if (size != 0)
    return this.getTotalSalary() / this.size();
else
    return 0;
Run Code Online (Sandbox Code Playgroud)

根据我的经验,如果我想减少代码大小,我只会使用它.但是,它确实使代码更难以阅读.