renovations
This commit is contained in:
parent
c7d4c7e3ff
commit
e1948130f6
170 changed files with 1496 additions and 1161 deletions
|
@ -0,0 +1,36 @@
|
|||
Вычислить любое выражение нам поможет `eval`:
|
||||
|
||||
```js
|
||||
//+ run
|
||||
alert( eval("2+2") ); // 4
|
||||
```
|
||||
|
||||
Считываем выражение в цикле `while(true)`. Если при вычислении возникает ошибка -- ловим её в `try..catch`.
|
||||
|
||||
Ошибкой считается, в том числе, получение `NaN` из `eval`, хотя при этом исключение не возникает. Можно бросить своё исключение в этом случае.
|
||||
|
||||
Код решения:
|
||||
|
||||
```js
|
||||
//+ run demo
|
||||
var expr, res;
|
||||
|
||||
while(true) {
|
||||
expr = prompt("Введите выражение?", '2-');
|
||||
if (expr == null) break;
|
||||
|
||||
try {
|
||||
res = eval(expr);
|
||||
if (isNaN(res)) {
|
||||
throw new Error("Результат неопределён");
|
||||
}
|
||||
|
||||
break;
|
||||
} catch(e) {
|
||||
alert("Ошибка: "+e.message+", повторите ввод");
|
||||
}
|
||||
}
|
||||
|
||||
alert(res);
|
||||
```
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue