【问题标题】:Is there a neat way to organize uni-conditional code that exists at different sections of a program?有没有一种巧妙的方法来组织存在于程序不同部分的单条件代码?
【发布时间】:2017-02-06 14:31:15
【问题描述】:

例如,我想要这样的东西:

If(condition) object.start();

// Do some unrelated processing

If(condition) object.stop();

作为我想要发生的事情的一个简单示例。是否有任何与语言无关的方法来组织它,尤其是当您有更多条件代码行时?

【问题讨论】:

  • 我并没有真正得到你想要的......一个while循环? switch-case 语句?
  • Gewure,我想知道是否有一种方法可以在程序的不同部分执行基于相同条件的代码,而无需在每行之前重复相同的 if 条件。
  • 当然,将它“封装”在一个对状态变量进行操作的函数中。例如:def bla(): if(statusVar == 1): doSomething() else: return

标签: if-statement language-agnostic code-organization


【解决方案1】:

我想你问这个是因为条件昂贵或不可重复。

一个典型的解决方案是在第一个 IF 中设置一个布尔变量,然后让第二个 IF 检查该布尔变量而不是重新执行条件。

boolVar=false
if (condition) {
  boolVar=true
  object.start()
}
// do unrelated stuff
if (boolVar) {
  object.stop()
}

另一个典型的解决方案是这样的:

if (condition) {
  object.start()
  doSomething()
  object.end()
} else {
  doSomething()
}

不要害怕简单的解决方案,如果它们足够好的话。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2020-09-20
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多