【问题标题】:How to avoid coding same code twice in (if, if else) statement, when the code has to run if one is true?当代码为真时必须运行时,如何避免在(if,if else)语句中对相同的代码进行两次编码?
【发布时间】:2020-09-06 16:17:33
【问题描述】:

考虑这个伪代码:

if(p){
 foo()
 bar1()
}
if else(q){
 foo()
 bar2()
}

有没有办法避免调用函数 foo() 两次?我可以写:

if(p||q){
 foo()
}
...

但这是唯一的解决方案吗?

【问题讨论】:

  • 在进行条件检查之前为什么不直接运行 foo?
  • @enhzflep 因为可能存在 p 和 q 都不为真的情况,所以 foo 根本不应该运行
  • @WinnieThePooh 在不同情况下两次调用同一个函数不是问题。事实上,这就是模块化背后的想法。这可能是个人意见,但我更喜欢第一种方式,因为它对我来说似乎更具可读性。对于您的第二个 sn-p,您将需要另外两个 if 来检查是运行 bar1 还是 bar2

标签: if-statement pseudocode


【解决方案1】:

请记住,从 if 和 else 调用相同的函数没有问题,我们执行函数的原因之一是它的可重用性,这是重用它的正确方法。

避免调用相同函数的选项之一:

if(p||q){
 foo();
 if (p){
   bar1();
 }
 else {
  bar2();
 }
}

还要记住,代码的可读性非常重要,虽然它是基于意见的,但我认为你的方式更清晰

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多