Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Eval-калькулятор с ошибками

Напишите интерфейс, который принимает математическое выражение (prompt) в и возвращает его результат.

Интерфейс может допускать использование любых функций.

При ошибке нужно выводить сообщение и просить переввести выражение. Ошибкой считается некорректное выражение, такое как 2+ и выражение, возвращающее NaN, например 0/0.

Демо в новом окне: tutorial/intro/eval-calc-try.html.

Схема решения
Решение
Схема решения

Вычислить любое выражение нам поможет eval:

alert( eval("2+2") ); // 4

Считываем выражение в цикле while(true). Если при вычислении возникает ошибка — ловим её в try..catch.

Ошибкой считается, в том числе, получение NaN из eval, хотя при этом исключение не возникает. Можно бросить своё исключение в этом случае.

Код решения
Код решения

while(true) {
  expr = prompt("Введите выражение?", '2-');

  try { 
    res = eval(expr); // при ошибке будет catch

    if (isNaN(res)) { // наша ошибка
      throw new Error("Результат неопределён");
    }

    break; // все ок, выход из цикла

  } catch(e) {

    alert("Ошибка: "+e.message+", повторите ввод");

  }
}

alert(res);

Полное решение: tutorial/intro/eval-calc-try.html.

#443
Наверх

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!