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

Помогите с поиском ошибки в коде. Операторы continue и break в java script.

Hayk Ginosyan Знаток (351), на голосовании 1 год назад
Задача, Если power больше 8, в цикле будут выполняться лишние итерации — это не очень эффективно. Попробуй оптимизировать код: замени команду continue на команду break так, чтобы из цикла можно было выйти, когда выполнится условие «степень больше 8».
Код
let power = prompt('Укажи степень');
power = Number(power)
let result = 1;
for (let i = 1; i < power; i++) {
if (i => 8) {
break;
}
result = result * 2;
}
alert(result);
Голосование за лучший ответ
Sergio 2.1 Оракул (67388) 1 год назад
Ваш код выглядит правильным. Вы заменили оператор continue на break, чтобы выйти из цикла, когда выполнится условие «степень больше 8». Однако, в условии if (i => 8) вы использовали оператор сравнения =>, который не существует в JavaScript. Вместо этого, вы должны использовать оператор больше или равно >=. Исправленное условие будет выглядеть так: if (i >= 8).
Hayk GinosyanЗнаток (351) 1 год назад
Поменял код, но выдает такую ошибку.
Hayk GinosyanЗнаток (351) 1 год назад
но и до замены с (i => 8). на (i >= 8). такая же ошибка была
Sergio 2.1 Оракул (67388) Hayk Ginosyan, Ваш код вычисляет result как 2 в степени power - 1, а не 2 в степени power. Это происходит из-за того, что цикл for начинается с i = 1 и заканчивается на i < power, а не на i <= power. Чтобы исправить эту ошибку, измените условие цикла на for (let i = 1; i <= power; i++).
Hayk GinosyanЗнаток (351) 1 год назад
Спасибо, попробую
Hayk GinosyanЗнаток (351) 1 год назад
Теперь такая ошибка
Sergio 2.1 Оракул (67388) Hayk Ginosyan, Ваш код содержит еще одну ошибку. Операторы result = result * 2; и alert(result); находятся после оператора break;, поэтому они никогда не выполняются. Оператор break; немедленно прерывает выполнение цикла и передает управление на следующую строку после цикла. Чтобы исправить эту ошибку, переместите операторы result = result * 2; и alert(result); перед оператором break;, как показано ниже:
 let power = prompt("Укажи степень"); 
power = Number(power) 
let result = 1; 
for (let i = 1; i <= power; i++) { 
    if (i >= 8) { 
        result = result * 2; 
        alert(result); 
        break; 
    } 
    result = result * 2; 
} 
 
Теперь код должен работать правильно и вычислять верный результат.
Кирилл НеклесовУченик (120) 1 год назад
let power = prompt('Укажи степень');
power = Number(power);
let result = 1;
for (let i = 1; i <= power; i++) {
if (i > 8) {
break;
}
result = result * 2;
}
alert(result);
Похожие вопросы