【问题标题】:How would I return true if an employee is above or below a certain temperature? [closed]如果员工高于或低于某个温度,我将如何返回 true? [关闭]
【发布时间】:2021-03-05 19:03:10
【问题描述】:

如果他们的体温超出 32-38 的范围,并且他们有新的咳嗽或嗅觉丧失,我需要让程序返回 true(意味着员工生病)。否则,员工没有生病(需要返回false。)

到目前为止,这是我的代码:

public boolean returntowork(float temperature, boolean newCough, boolean lossOfSmell) {
    if (temperature >= 38 && newCough || lossOfSmell);
    return true;

}

【问题讨论】:

  • 乍一看我觉得不错。如果lossofSmell 为真,即使temperature 小于38,我们是否希望该方法返回真?您能否提供一组测试数据,包括预期结果和实际结果?
  • @Hoppeduppeanut 你好,所以我需要的方法是在温度高于 38 或低于 32 时返回 true,并且要么失去嗅觉是真的,要么是新的咳嗽是真的。谢谢:)
  • 您的问题含糊不清。是(温度超出32-38的范围),还是(他们有新的咳嗽或嗅觉丧失)----(体温超出 32-38 的范围,并且他们有新的咳嗽)或(嗅觉丧失)?根据目前的想法,嗅觉丧失在诊断方面的重要性超过温度。
  • 我建议您仔细考虑可能性。如果他们的体温是 40 度,但没有新的咳嗽或嗅觉丧失,那么他们生病了吗?
  • 然后是boolean sick = ((temp < 32 || temp >38) && (newCough || lossOfSmell))——这是一个布尔表达式,您可以直接返回。并且括号是必需的,因为&& 的优先级高于||

标签: java return boolean


【解决方案1】:

你很亲密。这样做。

return ((temperature >= 38 && newCough) || lossOfSmell);

表达式是一个布尔值,所以你可以直接返回它,而不是使用if

编辑:您可以编写任何您需要的逻辑表达式。例如,您可以这样做:

return ( (temperature >= 38 && newCough) ||
         temperature <= 32 ||
         lossOfSmell
       );

如果您想拒绝太冷的温度、太高的温度导致咳嗽或失去嗅觉。

如果您只想在咳嗽时拒绝过冷的温度,您可以这样做。

return ( (temperature >= 38 && newCough) ||
         (temperature <= 32 && newCough) ||
         lossOfSmell
       );

这里的重点是使您的临床指标的代码真正易于阅读。在现实世界中,您可能需要医生来检查您的代码;你希望她有机会理解它。

并且,专业提示,始终使用括号将 &amp;&amp;|| 运算符组合在一起。不要试图记住他们的运算符优先级或依赖它。

【讨论】:

  • (虽然在这种情况下,外部括号并没有真正增加太多。)
  • 感谢您的回复!只是一个简单的问题,如果温度高于 38 或低于 32,我将如何做到这一点,它应该返回 false?在此先感谢:)
  • @chrylis-cautiouslyoptimistic- 当然,关于外部括号,您是对的。我将它们包括在内,以帮助向提问者教授其逻辑表达的明确而清晰的编码风格。这里唯一重要的是编写代码,因此很容易推理。在 21 世纪,我们可以信任我们的 C++ 编译器来优化这类事情。
  • @SmellyAlien 请看我的编辑。
【解决方案2】:

在 Java 中,您可以在布尔运算中使用 ! 作为 NOT 运算符,然后将您的逻辑包裹在括号中,这意味着如果整个运算的计算结果为 false,您的操作将只计算为 true。和写(1 == 2) != true基本一样

因此,您可以像这样重写您的方法(这也避免了if true {return true} 反模式)

return !(newCough || lossofSmell || temperature < 32 || temperature >= 38)

简单解释一下,每个变量都是使用 OR 运算符单独计算的,因此如果其中任何一个计算为 true,那么整个表达式的计算结果为 false,这要归功于一开始的 ! NOT 运算符。

例如,假设newCough = truelossofSmell = falsetemperature = 35。表达式变为:

return !(true || false || false || false)

简化为:

return !true

最后计算为false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-18
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多