1

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

1:

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

2:

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

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


这里新增:哪一个性能更好,在什么条件下?

4

2 回答 2

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. 撤销案例 B
  3. 案例A

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

于 2013-10-25T04:15:59.007 回答
0

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

这两个是等价的

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

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

于 2013-10-25T04:15:11.923 回答