Задача с вложенными циклами
Нужно нарисовать строку с помощью вложенного цикла:
10x01x
10x01x
10x01x
У меня получилось так:
10x010
10x010
10x010
Сделал все через оператор % узнав остаток, а для 'x' написал отдельную инструкцию через else if. Но проблема в том, что if записывает 0 первее, чем else if для второго 'x'.
let out6 = document.querySelector('#out6');
for (let i = 0; i < 3; i++) {
for (let j = 1; j <= 6; j++) {
if (j % 2 == 0) {
out6.innerHTML += 0;
}
else if (j == 3 || j == 6) {
out6.innerHTML += 'x';
}
else {
out6.innerHTML += 1;
}
}
out6.innerHTML += '<br>';
}
Как это исправить?
Ответы (2 шт):
Автор решения: n1tr0xs
→ Ссылка
Просто поменяйте инструкции местами.
let out6 = document.querySelector('#out6');
for (let i = 0; i < 3; i++) {
for (let j = 1; j <= 6; j++) {
if (j == 3 || j == 6) {
out6.innerHTML += 'x';
}
else if (j % 2 == 0) {
out6.innerHTML += 0;
}
else {
out6.innerHTML += 1;
}
}
out6.innerHTML += '<br>';
}
Еще можно заменить j==3 || j==6 на j % 3 == 0.
Автор решения: Tefse
→ Ссылка
Если там нет ограничения на количество вложенных циклов, то можно так
let str = '';
for (let a = 0; a < 3; a++) { //цикл-обертка для вывода строки три раза
for (let i = 1; i > 0; i--) {
str += `${i}`;
for (let j = 0; j <= 1; j++) {
str += `${j}x`;
if (j === 1) continue;
for (let k = 0; k <= 0; k++) {
str += `${k}`;
}
}
}
str += `<br>`;
}
document.write(str);
console.log(str);