#javascript #node.js
#javascript #node.js
Вопрос:
Я хочу регистрировать случайные числа на консоли до 6 включительно.
let i = 0
function test() {
while (i < 6) {
i = Math.floor(Math.random() * 7)
console.log(i)
}
if (i = 6){
console.log(i);
break;
}
}
Я пробовал это, но получаю сообщение об ошибке «Недопустимый оператор прерывания»
Что такое недопустимый оператор break и как я могу этого добиться?
Комментарии:
1. вы используете break вне своего цикла…
2. Сравнение выполняется с помощью
===
Ответ №1:
вы используете оператор присваивания вместо условного оператора
итак, ваш ответ будет
let i = 0
function test() {
while (i < 6) {
i = Math.floor(Math.random() * 7)
console.log(i)
if (i == 6){
console.log(i);
break;
}
}
}
Комментарии:
1. вы также можете использовать === для проверки типа
Ответ №2:
превратите оператор if в тест на равенство, содержащийся в операторе while, т.е.
while(i<6){...
if(i==6)
{...
}
}
Вот полное решение, примечание 6 печатается дважды, кстати, при выполнении конечного условия.
let i = 0;
function test() {
while (i < 6) {
i = Math.floor(Math.random() * 7);
console.log(i);
if (i == 6){
console.log(i);
break;
}
}
}
test();
Ответ №3:
Вам не нужно использовать оператор break . Потому что, когда i = 6
тогда ваше условие цикла ложно. Цикл выполняется только тогда, когда i < 6
.
let i = 0
function test() {
while (i < 6) {
i = Math.floor(Math.random() * 7)
console.log(i)
}
if (i == 6){
console.log(i);
}
}
Ответ №4:
Вам не нужно проверять равенство, потому 6
что это единственное случайное значение, при котором цикл останавливается.
И из-за этого вам не нужно ни break
цикла, ни return
функции.
Конструкция цикла должна иметь хотя бы один цикл. В этом случае вам лучше использовать do ...while
цикл, потому что первая проверка всегда true
.
function test() {
let i = 0;
do {
i = Math.floor(Math.random() * 7);
console.log(i);
} while (i < 6)
console.log('final value', i);
}
test();
Ответ №5:
i = 6
(назначение) должно заключатьсяi === 6
в проверке строгого равенства- Вместо использования
break
вы могли бы просто использовать рекурсию, которая будет вызывать ту же функцию, если randomr
не равенn
function test(max, n) {
const r = ~~(Math.random() * (max 1));
console.log(r);
if (r !== n) test(max, n);
}
test(6, 6); // max 6, stop if 6
Ответ №6:
Вы используете оператор break внутри функции, а не внутри цикла, поэтому у вас возникает проблема. Переместите ваше условие и оператор break внутри цикла while.
Исправить:
let i = 0
function test() {
while (i < 6) {
i = Math.floor(Math.random() * 7)
console.log(i)
if (i == 6){
console.log(i);
break;
}
}
}
Ответ №7:
Выдает ошибку для остановки выполнения
if (i === 3) {
throw new Error(); // break
}