@vintalis

Вложенные циклы, как сделать такое?

С помощью вложенных циклов, нарисуйте строку:

01 02 03 04 05 06 07 08 09 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
Внешний цикл выводит перенос строки br и запускается от 0 до 6.

Вложенный цикл рисует цифры от 0 до 9. Обратите внимание, что первый ряд - есть ведущий нуль. Здесь все просто - проверили, если число меньше 10 - то конкатенируем нуль.

До конца не понял, как вложенным циклом это сделать :D
  • Вопрос задан
  • 4853 просмотра
Решения вопроса 3
Psixodelik
@Psixodelik
Преподаватель на Hexlet
Делаете два цикла.

У первого цикла счётчик идёт от 0 до 6. Внутри него каждый раз запускается второй цикл от 0 до 9. В котором вы уже подставляете числа (можете их дополнительно хранить во внешней переменной).

В первом цикле, в самом конце переносите строку.
Ответ написан
Комментировать
Seasle
@Seasle Куратор тега JavaScript
Как-то грустно стало видеть вопрос про циклы и строки.
Самый простой вариант:
const rows = 6;
const columns = 10;

let result = '';
for (let row = 0; row < rows; row++) {
    for (let column = 0; column < columns; column++) {
        const index = row * columns + column + 1;
        result += index.toString().padStart(2, '0');

        if (column < columns - 1) {
            result += ' ';
        }
    }

    if (row < rows - 1) {
        result += '\n';
    }
}

console.log(result);

А если нужна матрица, то используют массив.
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
function createTable(rows, cols) {
  const maxLen = `${rows * cols}`.length;

  return [...Array(rows)]
    .map((n, i) => [...Array(cols)]
      .map((m, j) => `${cols * i + j + 1}`.padStart(maxLen, 0))
      .join(' '))
    .join('\n');
}

или

function createTable(rows, cols) {
  const zeroStr = Array(1 + Math.ceil(Math.log10(rows * cols + 1))).join(0);
  let result = '';

  for (let i = 0; i < rows; i++) {
    result += i ? '\n' : '';

    for (let j = 0; j < cols; j++) {
      result += (j ? ' ' : '') + (zeroStr + (cols * i + j + 1)).slice(-zeroStr.length);
    }
  }

  return result;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
Vyatkinmm
@Vyatkinmm
let a = '', b = 0
for (let i = 0; i < 5; i++) {
    for (let j = 0; j < 10; j++) {
        b = +b + 1
        a += (b < 10) ? `0${b} ` : `${b} `
    }
    a += '<br>'
}

console.log(a)
Ответ написан
Комментировать
@Andruxan89
let result = "";
for (i = 0; i < 5; i++) {
for (k = 1; k <= 10; k++) {
if (k == 10) {
result += `${i + 1}0_`;
} else {
result += `${i}${k}_`;
}
}
result += "
";
}
Ответ написан
Комментировать
@Alaska14
out = '';
    for (i = 0; i < 5; i++) {
        out += '<br>';
        for (k = 1; k <= 10; k++) {
            if (k < 10) {
                out += `${i}${k} `;
            }
            else {
                out += `${k * (i + 1)}`;
            }
        }
    }
Ответ написан
Комментировать
@no7au53r
document.querySelector('.b-10').onclick = () => {
let out = ''

for (let i = 0; i < 1; i++) {
for (let k = 0; k <= 9; k++) {
if (k != 9) {
out += `0${k + 1}` + ' '
} else if ((k = 9)) {
out += `${k + 1}` + ' '
}
}
out += `
`

for (j = 11; j <= 20; j++) {
out += j + ' '
if (j > 19) {
break
}
}
out += `
`
for (let j = 21; j <= 30; j++) {
out += j + ' '
}
out += `
`
for (let j = 31; j <= 40; j++) {
out += j + ' '
}
out += `
`
for (let j = 41; j <= 50; j++) {
out += j + ' '
}
out += `
`
}
document.querySelector('.out-10').innerHTML = out
}
Ответ написан
Комментировать
@IGORG22
Ответ для новичков!!
let a = 0; //каждую итерацию внешнего цикла прибавляем 1 а++, и конкатенируем if (g < 10)
let b = 0; // каждую итерацию внутреннего цикла прибавляем 1 b++, и присваиваем g = b if (g == 10)
button.onclick = ( ) => {
let outNumbers = '';
for (let i = 0; i < 5; i++) {
for (let g = 1; g <= 10; g++) {
if (g < 10) {
outNumbers += a;
}
b++
if (g == 10) {
g = b;
}
outNumbers += g + ' ';
}
a++
outNumbers += '
';
} out.innerHTML = outNumbers;
}
Ответ написан
Комментировать
DashLean
@DashLean
let out1 = document.querySelector('.out1');
const ki = () => {
let out = '';
for (let k = 0; k <= 6; k++) {
  for (let i = 0; i <= 9; i++) {
  if (i + 1 + k * 10 < 10) {
    out += '0';
    }
  if (i + 1 + k * 10 <= 50) {
    out += i + 1 + k * 10;
    }
  out += ' ';
 }
  out += '<br>';
}
out1.innerHTML = out;
}
ki();
Ответ написан
Комментировать
@Prochniy
Ученик
for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
document.write(' ' + i + j);
}
}
Ответ написан
Комментировать
@provodman
function () {
let row = "";
for (let i = 0; i < 5; i++) {
row += '
'
for (let j = 0; j < 10; j++) {
let number = i * 10 + j + 1;
if (number < 10) {
row += "0";
}
row += number + " ";
}
console.log(row);
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы