Dunaevlad
@Dunaevlad

Почему функция возвращает 0 или 1, если ввести 0 или enter?

Доброго времени суток!
var running = true;
var words;

function characterCalculator() {
    while (running) {
        words = prompt('Put your words here: ');
        if (words == 0) {
            alert(' Pls, enter a correct value: ');
        } else {
            running = false;
        }
        return words.length;
    }

}

var outputValue = characterCalculator();
alert(outputValue);

При вводе 0 или нажатии enter, возвращается 0 или 1, хотя я в коде прописал иные условия. Если же убрать функцию return и изменит код на :
function characterCalculator() {
    while (running) {
        words = prompt('Put your words here: ');
        if (words == 0) {
            alert(' Pls, enter a correct value: ');
        } else {
            running = false;
            return words.length;
        }
    }
}

Все из-за того, куда поставишь jоператор return?
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
@AlexandrNikolaichev
Я бы переписал с рекурсией, так более явное поведение.
function characterCalculator() {
    let words = prompt('Put your words here: ');
    if (Number(words) === 0) {
        alert(' Pls, enter a correct value: ');
        return characterCalculator();
    } else {
        return words.length;
    }
}

В вашем же случае можно вынести words за пределы цикла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $
Artezio Москва
от 160 000 до 220 000 ₽