Как вы фальсифицируете условные выражения, которые не вкладываются в язык, который не позволяет переходить на 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;
EDIT:
Невозможно, чтобы 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];