Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравствуйте, помогите, пожалуйста найти ошибку в решении задачи

Кириллу Николаев Ученик (100), закрыт 11 месяцев назад
Напишите программу, которая говорит пользователю "Введите 10", пока он не введёт 10. Затем говорит "Введите 20", потом 40 и т.д. Если пользователь вводит другое число, нужно спросить его ещё раз, пока он не введёт нужное. Когда пользователь введёт больше 100, напишите "Спасибо!" и остановите программу.

let neededNumber = 10;
let currentNumber;

do {
while(currentNumber != neededNumber) {
currentNumber = prompt('Введите число ' + neededNumber);
}
neededNumber *= 2;
} while (currentNumber < 100);
alert('Спасибо!')
Лучший ответ
Николай Веселуха Высший разум (373430) 11 месяцев назад
 let neededNumber = 10;  
let currentNumber = 0;

do {
while (currentNumber != neededNumber) {
currentNumber = +prompt('Введите ' + neededNumber);
}
neededNumber *= 2;
} while (currentNumber < 100);
alert('Спасибо!');
Кириллу НиколаевУченик (100) 11 месяцев назад
Если я правильно понял то, когда программа просит ввести 10 и пользователь вводит 10, должно выскочить окно "Введите 20" и т.д. по возрастанию, и только когда пользователь введет больше 100, программа закончит свой цикл и ответит "Спасибо!". А данные код говорит "Введите 10" и когда вводишь 10, программа выводит сообщение "Спасибо!", то есть код завершает свою работу без какого либо продолжения, которое подразумевается в задаче.
Кириллу НиколаевУченик (100) 11 месяцев назад
И получается решение не состыковывает с тем, что требует задача.
Николай Веселуха Высший разум (373430) Кириллу Николаев, у меня всё работает как того требует программа, но для чистоты эксперимента можно переписать так...
 const task = () => { 
    let neededNumber = 10;  
    let currentNumber = 0;  
    while (true) {  
        while (currentNumber != neededNumber) {  
            currentNumber = +prompt('Введите число ' + neededNumber);
            if (currentNumber > 100) { 
                alert('Спасибо!'); 
                return; 
            } 
        }  
        neededNumber *= 2;  
    }  
}; 
 
task(); 
Кириллу НиколаевУченик (100) 11 месяцев назад
Спасибо большое за помощь, вы правы, это у меня почему то код некорректно работал, разобрался в чем была причина.
Николай Веселуха Высший разум (373430) Пожалуйста.
Остальные ответы
Павел Просветленный (25798) 11 месяцев назад
Ошибок не заметил. Задаче соответствует.
Похожие вопросы