具有一个ELSE的多个IF

时间:2012-11-02 14:39:51

标签: algorithm syntax if-statement

我想考虑一种语法改进。

我怎样才能更好地写出来:

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

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

如何写得更好?我不想两次编写相同的代码(在ELSE部分中)。

提前TnX!

维迪奇

3 个答案:

答案 0 :(得分:6)

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

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

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

DO
   IF condition1
      IF condition2
          { do something }
          BREAK
   { message1 }
WHILE FALSE

答案 1 :(得分: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 }

答案 2 :(得分:3)

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

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