如果员工高于或低于某个温度,我如何返回true?

pdkcd3nj  于 2021-07-08  发布在  Java
关注(0)|答案(2)|浏览(347)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题
如果他们的体温超出32-38的范围,并且有新的咳嗽或嗅觉丧失,我需要让程序返回真值(意味着员工生病了)。否则,员工没有生病(需要返回false。)
以下是我目前的代码:

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

}
ff29svar

ff29svar1#

在java中,您可以使用 ! 作为布尔运算中的not运算符,然后将逻辑括在括号中,这意味着您的运算将只计算为 true 如果整个操作的结果是 false . 基本上和写作是一样的 (1 == 2) != true 因此,您可以像这样重写您的方法(这也避免了 if true {return true} 反模式)

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

简单解释一下,每个变量都是使用or运算符分别计算的,因此如果其中任何一个变量的计算结果是 true ,则整个表达式的计算结果为 false ,多亏了 ! 一开始不是操作员。
比如说 newCough = true , lossofSmell = false 以及 temperature = 35 . 表达式变为:

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

简化为:

return !true

最后评估为 false .

bfnvny8b

bfnvny8b2#

你很接近。做这个。

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

表达式是一个布尔值,因此您可以直接返回它,而不是使用 if .
编辑:您可以编写任何需要的逻辑表达式。例如,您可以这样做:

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

如果你想拒绝太冷的温度,过高的温度咳嗽,或失去气味。
如果你想拒绝太冷的温度只有当他们来咳嗽,你可以这样做。

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

这里的重点是让你的临床指标代码非常容易阅读。在现实世界中,你可能需要医生来检查你的代码;你想让她有机会理解。
而且,专业提示,总是用括号把你的 && 以及 || 操作员。不要试图记住它们的运算符优先级或依赖它。

相关问题