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?
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 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 за пределы цикла
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы