JavaScript

Кто сможет объяснить мне как работает этот код

В общем читаю книгу (Выразительный JavaScript) и начал выполнять первые задания. По итогу застрял на задании по шахматной доске, сделанной из решёток. Пришлось смотреть решение, и я всё равно ничего не понял. Я не могу понять, почему в коде проверяют кратность суммы x и y и почему цикл находится в цикле. И вообще почему это работает?!?!?!!

let size = 8;
let board = "";
for (let y = 0; y < size; y++) {
for (let x = 0; x < size; x++) {
if ((x + y) % 2 == 0) {
board += " ";
} else {
board += "#";
}
}
board += "\n"
}
console.log(board);

Я знаю как работают циклы и условия, но не могу понять как это работает здесь
Николай Байса
Николай Байса
5 330
Что именно непонятно?
1R
16 R.g Тимур !!!
78 726
Лучший ответ
Николай Байса Я себе это так представляю: Сперва проходят два цикла, первое число будет 0, дальше идёт условие, которое мне вообще не ясно. Получается что 0 плюс 0 делить на 2 без остатка равно нулю? Я не понимаю, ведь на 0 же делать нельзя. Ну допустим он прошел, исходя из результата в консоле там стоит пробел.
Циклы снова повторяются и унас уже x и y равны единице, получается в условии теперь будет решётка, а куда её вообще ставят то, в строку или в столбец.
И далее эти циклы опять повторяются, но в сумме они всегда теперь будут чётные же, по итогу у нас сплошным будут одни пробелы, а в результате всё окей. Как это работате я просто не могу понять, вообще ничего не понимаю
Николай Байса В консоли вывод, а мне нужна была отладка. Я уже разобрался как её делать
Банальное рисование шахматной доски размера size * size.
Если сумма координат клетки чётная - добавляем в board пробел, если нечётная - добавляем в board решётку. Как только очередная горизонталь доски заполнена - добавляем в board символ перевода строки.
А когда вся доска сформирована - выводим board в консоль.
Это такой алгоритм для выяснения, какого цвета должна быть вот эта данная конкретная клетка шахматной доски.
Денис Бочаров
Денис Бочаров
98 084
Николай Байса Я знаю что этот алгоритм делает, я не могу понять как он работает
подумай как вывести шахматную доску.. напиши свой вариант, возможно и поймешь суть
я не смогу я не сумею
Там неебически сложное деление нацело это хитровымудренный трюк чтобы понять который я когда то потратил две недели. Кроче суть в том что остаток от деления не может быть больше делителя по этому что бы не делил числа всегда будут повторятся по кругу 010101 если делить на три то повторятся будут от 0 до 2х эта фича (%2) всегда используется для определения четности т е если остаток от деления числа равен нулю то оно четное если 1 то не четное а дальше цикл смотрит где четные там ставят решетки а где не четные там пробелы(или наоборот но семь такая ). Два цикла один рисует строчки другой столбцы . Конкретно там используется сумма x+y она как раз хорошо подходит для номеров строк и столбцов.
В результате получается как раз шахматная доска в которой четные черные не четные белые
знак %- 'то не деление, а остаток от деления...
Далее, судя по Вашим рассуждениям, в первом цикле (0+0) % 2 дает 0, будет выполнено первое условие, если остаток будет не 0, то после условие после else....