27 lines
617 B
Markdown
27 lines
617 B
Markdown
Please note the subtle, but important detail of the solution. We don't convert `value` to number instantly after `prompt`, because after `value = +value` we would not be able to tell an empty string (stop sign) from the zero (valid number). We do it later instead.
|
|
|
|
|
|
```js run demo
|
|
function sumInput() {
|
|
|
|
let numbers = [];
|
|
|
|
while (true) {
|
|
|
|
let value = prompt("A number please?", 0);
|
|
|
|
// should we cancel?
|
|
if (value === "" || value === null || !isFinite(value)) break;
|
|
|
|
numbers.push(+value);
|
|
}
|
|
|
|
let sum = 0;
|
|
for (let number of numbers) {
|
|
sum += number;
|
|
}
|
|
}
|
|
|
|
alert( sumInput() );
|
|
```
|
|
|