更好的if/else语句

Tiz*_*izz 3 c#

这适用于任何语言,但我标记了c#,因为这是我现在使用的.

当两个条件中的任何一个为真时,我有一些我想要运行的语句,但是根据哪个条件为真,可以运行一些额外的特殊语句(只有一个可以为真)

if( condition1 || condition2 )
{
    statement1;
    statement2;

    if( condition1 )
        additional_statement1;
    else // (condition2)
        additional_statement2;
}
Run Code Online (Sandbox Code Playgroud)

这看起来很草率(我测试了两次"condition1")并且只使用了OR语句,因为我希望两种条件都有相同的响应,但现在增强需要响应略有不同.无论如何要漂亮吗?

Bra*_*NET 5

这种方法是不是真的不好.if语句非常便宜且快速,只要条件表达式本身便宜且快速.话虽这么说,你可以将常用功能包装成一个函数:

if (condition1)
{
   CommonFunction();
   //CustomStuff
}
else if (condition2)
{
    CommonFunction();
    //Other stuff
}
Run Code Online (Sandbox Code Playgroud)

这避免了复制粘贴问题,并且条件表达式的执行最少.

  • ......如果布尔表达式(例如,`condition1`)便宜且快*,则非常便宜且快速*. (3认同)
  • @AndrewGrinder无法对变量表达式执行切换语句.是的,如果条件类似于`x == 1`,它会起作用,但许多条件表达式更复杂. (2认同)