你如何伪造不嵌套在不允许 goto 的语言中的条件?我想做以下事情:
if (condition1)
action1;
if (!condition1 && condition2)
action2;
if (!condition2 && condition3)
action3;
没有:
- 不必要地多次评估任何条件。
- 不必要地将任何此类评估的结果存储在变量中。
- 不必要地多次指定应执行任何操作。
原始代码段不符合要求 1。
以下代码段不符合要求 2:
if (condition1) {
action1;
c2 = false;
}
else if (c2 = condition2)
action2;
if (!c2 && condition3)
action3;
以下代码段不符合要求 3:
if (condition1) {
action1;
if (condition3)
action3;
}
else if (condition2)
action2;
else if (condition3)
action3;
编辑:
不可能
condition1
同时condition2
为真。不可能
condition2
同时condition3
为真。
这是原始代码(在 JavaScript 中):
// If only the array of elements was specified,
// wrap it inside an object.
if (info.constructor !== Object)
info = {children: info};
// If no array of elements was specified, create
// an empty array of elements.
if (!info.children)
info.children = [];
// If, instead of an array of elements, we have
// a single element, wrap it inside an array.
if (info.children.constructor !== Array)
info.children = [info.children];