If statement 如何避免在(if,if-else)语句中对同一代码进行两次编码,如果其中一个为true,则必须运行该代码?

If statement 如何避免在(if,if-else)语句中对同一代码进行两次编码,如果其中一个为true,则必须运行该代码?,if-statement,pseudocode,If Statement,Pseudocode,考虑以下伪代码: if(p){ foo() bar1() } if else(q){ foo() bar2() } 有没有办法避免对函数foo()编写两次调用?我可以写: if(p||q){ foo() } ... 但是,这是唯一的解决方案吗?请记住,从if和else调用相同的函数没有问题,这是我们执行函数的原因之一,它的可重用性,这是正确的重用方法 避免调用相同函数的选项之一: if(p||q){ foo(); if (p){ bar1(); } else {

考虑以下伪代码:

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

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

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

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

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

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

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

还请记住,代码的可读性非常重要,尽管它是基于意见的,但我认为您的方法更清晰

为什么不在执行条件检查之前运行foo?@enhzflep,因为可能存在p和q都不正确的情况,所以foo不应该在all@WinnieThePooh在不同情况下调用同一函数两次不是问题。事实上,这就是模块化背后的理念。这可能是我个人的观点,但我更喜欢第一种方式,因为它对我来说更具可读性。对于第二个代码段,您需要另外两个if来检查是运行bar1还是bar2