使用基本Java程序的逻辑/条件循环/代码时出现问题

时间:2015-02-24 22:29:36

标签: java loops

我需要为某种类型的员工解释一个java程序。在setWage方法中有一些我不理解的逻辑..

public void setWage(double wagePerPiece)
{
 wage = ( wagePerPiece < 0.0 ) ? 0.0 : wagePerPiece;
}

我不明白这个条件语句的输入方式。这是一种循环类型的简写吗?如果是这样的话,如果以这种形式的循环扩展,我会更加理解它。

3 个答案:

答案 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是丑陋的,令人困惑的,并且非常不被你的开发者所赞赏: - )