3

我想考虑一种语法改进。

我怎样才能写得更好:

IF condition1 
    IF condition2
        { do something }
    ELSE 
        { message1 }
ELSE 
    { message1 }

有两个 IF 语句不能在一个语句中连接,但在两个 ELSE 部分中的代码必须相同(在此示例中为 message1)。

这个怎么写更好?我不想两次编写相同的代码(在 ELSE 部分中)。

提前TnX!

内马尼亚

4

4 回答 4

6

显而易见的解决方案是将这两个条件结合起来:

IF condition1 AND condition2
    { do something }
ELSE 
    { message1 }

但是,如果由于某种原因这两个条件确实无法组合,并且您使用的是具有break关键字或等效项的类 C 语言,那么您可以执行以下操作:

DO
   IF condition1
      IF condition2
          { do something }
          BREAK
   { message1 }
WHILE FALSE
于 2012-11-02T14:41:53.443 回答
5

关于什么

IF condition1 AND condition2
    { do something }
ELSE 
    { message1 }

如果你不能加入这两个语句,你可以使用某种 GOTO (ps:这是不好的做法)

IF condition1 
    IF condition2
        { do something }
    ELSE 
        GOTO ELSE_CODE
ELSE 
    :ELSE_CODE
    { message1 }
于 2012-11-02T14:41:45.410 回答
3

如果您正在谈论一种没有短路布尔评估的语言,您可以手动实现它

flag = condition1 
IF flag
    flag = flag AND condition2
IF flag
    { do something }
ELSE 
    { message1 }
于 2012-11-02T14:53:23.373 回答
0

我搜索了这个答案,我意识到你只需要重新排序语句。

而不是 2 个 IF 语句和一个像这样的其他语句

{
     if(FirstCheck === true){
         //run function 1
     }
     if(SecondCheck === true){
         //run function 2
      }
}else{
    //run this else only when the first 2 IFs are false
    // run function 3        
     }
}

你想做一个 IF 是因为你想在 else 中运行函数,然后为那个 IF 放置一个 else,然后运行你原来的 IF

if(orginalElse !== true){
    //run function 3
    //this is the orginal else you would want to run, just with a negative if statement
}else{
    if(FirstCheck === true){
        //run function 1
    }
    if(SecondCheck === true){
        //run function 2
    }
}
于 2022-02-23T00:08:54.180 回答