我正在学习编程语言原理。我的老师给了我一个类似以下的问题,这让我很困惑:
1:
if (Condition){
Case A;
} else {
Case B;
}
2:
Case B;
if (Condition) {
Undo Case B;
Case A;
}
假设在 C++ 中,这两个程序是等价的吗?
这里新增:哪一个性能更好,在什么条件下?
我正在学习编程语言原理。我的老师给了我一个类似以下的问题,这让我很困惑:
1:
if (Condition){
Case A;
} else {
Case B;
}
2:
Case B;
if (Condition) {
Undo Case B;
Case A;
}
假设在 C++ 中,这两个程序是等价的吗?
这里新增:哪一个性能更好,在什么条件下?
这两个程序的输出将是相同的。但在
if (Condition){
Case A;
} else {
Case B;
}
只执行了一条语句。如果“条件”为真,这会导致更快的执行时间。
在
Case B;
if (Condition) {
Undo Case B;
Case A;
}
Case B
无论 的真值如何,总是执行Condition
。当Condition
为真时,总共执行 3 条语句。
- 案例B
- 撤销案例 B
- 案例A
当Condition
为假时,两个程序具有或多或少相同的执行时间。
这不是 C++,更像是伪代码
这两个是等价的
1. 如果条件为真,则执行案例 A
在 2. 如果条件为真,那么我们恢复案例 B 并执行案例 A