我正在学习编程语言原理。我的老师给了我一个像下面这样的问题,这让我很困惑:
1:
if (Condition){
Case A;
} else {
Case B;
}
2:
Case B;
if (Condition) {
Undo Case B;
Case A;
}
假设在c ++中,这两个程序是等价的吗?
这是新添加的:哪一个在性能和条件方面更好?
答案 0 :(得分:1)
两个程序的输出都是一样的。 但是在
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
为false时,两个程序的执行时间或多或少相同。
答案 1 :(得分:0)
这不是C ++,而是更像伪代码
这两个是等价的
在1.如果条件为真,则执行案例A
在2.如果条件为真,那么我们还原案例B并执行案例A