我需要为某种类型的员工解释一个java程序。在setWage方法中有一些我不理解的逻辑..
public void setWage(double wagePerPiece)
{
wage = ( wagePerPiece < 0.0 ) ? 0.0 : wagePerPiece;
}
我不明白这个条件语句的输入方式。这是一种循环类型的简写吗?如果是这样的话,如果以这种形式的循环扩展,我会更加理解它。
答案 0 :(得分:1)
这是一个条件运算符。第一部分是条件,第二部分和第三部分是基于该条件的结果。
如果wagePerPiece
小于0.0,则执行wage = 0.0
,如果不是,则运行wage = wagePerPiece
。
基本结构是:
condition ? trueResult : falseResult
评估行时,首先评估条件,然后如果if为true,则评估trueResult
的表达式并将其用作此表达式的值。如果为false,则计算falseResult
表达式,并将该值用作此完整表达式。
答案 1 :(得分:1)
这称为三元运算符。这是一种较短的说法
public void setWage(double wagePerPiece)
{
if(wagePerPiece < 0.0) {
wage = 0.0;
} else {
wage = wagePerPiece;
}
}
答案 2 :(得分:1)
由于我无法对David的答案发表评论(真的很愚蠢Stack Overflow),它与
相同public void setWage(double wagePerPiece) {
double wage;
if (wagePerPiece < 0.0)
wage = 0.0;
else
wage = wagePerPiece;
}
请注意,我输入了他缺少的变量声明。长话短说,一切都留下了?是条件语句(&#39; if&#39;)。之间的一切?并且:如果条件子句是true
,会发生什么。如果条件子句为false
,则会发生以下情况:请注意,这是一个if / else。使用这个简写做if / else if / else是丑陋的,令人困惑的,并且非常不被你的开发者所赞赏: - )