【问题标题】:Expression brain fade表情大脑褪色
【发布时间】:2017-03-29 13:01:52
【问题描述】:

我正在尝试编写一个适合问题评论的逻辑表达式

// **Don't do xyz between 10.00pm and 7:30am**
//
if(hour > 22 || (hour < 7 && minutes < 30)
    output("too early or too late");

没有想出什么可怕的东西:

if (hour > 20)
    "Too late";

if (hour < 7)
    "Too early"
else
if (hour == 7 && minute < 30)
          "Too early"

请让我摆脱痛苦。

【问题讨论】:

  • 请选择一种语言,选择两种对任何人都没有帮助...
  • @DavidG 我的错,我把他提到的函数名误认为是 C 库函数名。我将恢复我的编辑。
  • 我把它放在 C# 和 C++ 下以获得最佳覆盖率 - 两者的语法相同。
  • 虽然答案可能不一样,但不要选择覆盖范围的标签,选择它是为了适当。
  • if 语句在许多语言中是相同的。 C# 和 C++ 是两种截然不同的语言。

标签: c# c++ logic


【解决方案1】:

|| 是你的朋友。如果您有多个条件,并且其中任何一个为真,那么您想做某事而不是使用

if (condition1)
    do_something();
if (condition2)
    do_something();
if (condition3)
    do_something();

你可以使用

if (condition1 || condition2 || condition3)
    do_something();

因此,将其与您的单个 if 语句相关联

if(hour > 21 || hour < 7 || (hour == 7 && minute < 30))
    output("too early or too late");

【讨论】:

  • 尝试 22 小时 10 分钟,如 22:10。
  • @Equalsk 好吧,这取决于 OP 想要什么。如果他们想要 22:00 之后的任何时间,那么他们只需要hour &gt; 21
  • 我认为 OP 想要什么很清楚,在 7:30 之前和 22:00 之后的任何时间都不行。我唯一的问题是这是否包括这些时间,但 22:10 绝对不应该过去,它在你的样本中......
  • @Equalsk 我错过了代码中的注释,所以我没有看到这个要求。更新了答案。
猜你喜欢
  • 2021-05-16
  • 2014-07-26
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 2015-03-16
  • 2012-05-29
  • 1970-01-01
相关资源
最近更新 更多