我有这两种方法。我理解" 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;
}
empReg是ArrayList的名称。员工是一个由" name"组成的班级。 "薪水"。 getSalary显然是一种返回工资的方法。
答案 0 :(得分:6)
问号称为三元运算符,用于根据评估做出决策。它通常用于替换if语句,因为它们执行相同的操作。例如,将使用if语句编写:
if (size != 0)
return this.getTotalSalary() / this.size();
else
return 0;
根据我的经验,如果我想减少代码大小,我只会使用它。但是,它确实使代码更难以阅读。
答案 1 :(得分:3)
你不能除以零。
?和:是三元运算符。这意味着如果?
之前的表达式为真,则返回this.getTotalSalary() / this.size()
,否则返回0.
答案 2 :(得分:0)
在java中称为三元运算符,这里有一些示例:http://alvinalexander.com/java/edu/pj/pj010018
答案 3 :(得分:0)
请参阅此讨论:What is a Question Mark "?" and Colon ":" Operator Used for?
它解释了
编写了C,Java和JavaScript中的传统if-else结构:
if (a > b) {
result = x;
} else {
result = y;
}
这可以改写为以下声明:
result = a > b ? x : y;