Я пишу скрипт, который запрашивает у пользователя ввод чисел до ввода слова “quit”. Программа функционирует, но возникает сложность с подсчетом количества введенных значений, не включая слово-терминатор. Буду признателен за помощь.
<script>
let finalWord = 'quit';
let valuesArray = [];
let userValue = '';
do {
userValue = prompt('Введите число или quit для завершения').toLowerCase();
valuesArray.push(userValue);
} while (userValue !== finalWord);
document.write('<p>');
for (let i = 0; i < valuesArray.length - 1; i++) {
document.write(valuesArray[i]);
if (i < valuesArray.length - 2) {
document.write(', ');
}
}
document.write('</p>');
</script>
Попробуйте сначала проверять, если введено слово ‘quit’, и только потом добавлять число в массив. А как вы думаете, стоит ли проверять корректность числовых значений? Поделитесь, интересно узнать ваше мнение.
Попробуйте использовать бесконечный цикл с break: запрашивайте ввод, и если введено quit, выходите, иначе добавляйте значение в массив. Такой подход сразу исключает лишние проверки. Что думаете, какие преимущества он дает?
Я бы решил проблему чуть по-другому – сразу при вводе проверять, является ли значение quit, и только если нет, добавлять его в массив. Мне так было удобнее, т.к. не нужно потом заботиться об удалении лишнего значения. Лично я ещё добавлял проверку, чтобы вводилось именно число, так как от этого зависит корректность работы скрипта. Надеюсь, такой вариант будет для вас полезен.
Можно решить задачу, проверяя условие до добавления значения в массив, как уже писал кто-то, но я предпочитаю использовать цикл while с проверкой внутри, чтобы исключить лишние элементы. Так сразу поймешь, что введено значение выхода и не дублировать проверки после. В работе с числами всегда полезно проводить валидацию, чтобы избежать неожиданных ошибок при дальнейшей обработке данных.