这两个条件句子是否相同?

时间:2013-10-25 04:07:47

标签: c++ programming-languages

我正在学习编程语言原理。我的老师给了我一个像下面这样的问题,这让我很困惑:

1:

if (Condition){
    Case A;
} else {
    Case B;
}

2:

Case B;
if (Condition) {
    Undo Case B;
    Case A;
}

假设在c ++中,这两个程序是等价的吗?


这是新添加的:哪一个在性能和条件方面更好?

2 个答案:

答案 0 :(得分:1)

两个程序的输出都是一样的。 但是在

if (Condition){
    Case A;
} else {
    Case B;
}

执行中只有一个语句。在“条件”为真的情况下,这会导致更快的执行时间。

Case B;
if (Condition) {
    Undo Case B;
    Case A;
}
无论Case B的真值如何,始终执行

Condition。当Condition为真时,执行总共3个语句。

  
      
  1. 案例B
  2.   
  3. 撤消案例B
  4.   
  5. 案例A
  6.   

Condition为false时,两个程序的执行时间或多或少相同。

答案 1 :(得分:0)

这不是C ++,而是更像伪代码

这两个是等价的

在1.如果条件为真,则执行案例A

在2.如果条件为真,那么我们还原案例B并执行案例A