Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Допустимо ли размещать цикл внутри условия?

#javascript


 if (numStr[0] === '-') {
  result = negativeNum(numStr);
} else {
  for (let i = length(numStr) - 1; i >= 0; i -= 1) {
    result += numStr[i];
  }
}

    


Ответы

Ответ 1



Если обратиться к спецификации, конструкция if имеет следующий вид if ( Expression ) Statement else Statement В свою очередь Statement может быть следующими конструкциями: Statement: BlockStatement VariableStatement EmptyStatement ExpressionStatement IfStatement BreakableStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement ThrowStatement TryStatement DebuggerStatement В этом списке интересен BreakableStatement BreakableStatement: IterationStatement SwitchStatement Который в итоге приводит нас к циклам IterationStatement: ... for(LexicalDeclaration Expression; Expression) Statement ... Отсюда видно, что размещение цикла внутри любой из ветвей условного оператора вполне допустимо.

Комментариев нет:

Отправить комментарий