unimat
@unimat
Украина. г. Киев

Обьясните каким образом работает вложенный цикл, как переменная S, меняет значения?

Есть задача: При нажатии b-13 выполняете функцию f13. Функция должна присвоить переменной a13 массив эмулирующий шахматную доску. Причем массив должен создаваться с помощью циклов. Для проверки - выведите массив в консоль.
Решение:
let a13 = [];
function f13() {  
    let s = 0;   
        for (let i = 0; i < 8; i++) {
               let temp = [];
                  for (let k = 0; k < 8 ; k++) {  
                        temp.push(s);
                          if (s == 0) {
                               s = 1;
                             }   else {
                               s = 0;
                            } 
                         }
                         if (s == 0) {
                              s = 1;
                           }  else {
                              s = 0;
                           } 
                           a13.push(temp); 
                        }
                         console.log(a13);
                     }
                         document.querySelector('.b-13').onclick = f13;
  • Вопрос задан
  • 1284 просмотра
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
внешний цикл for (let i = 0; ... перебирает, условно, горизонтали (строки).
внутренний цикл for (let k = 0; ... составляет очередную строку из клеточек, перебирает 8 клеток.

переменная s, которая бывает или 1 или 0, означает цвет очередной клетки, и на каждой клетке меняет своё значение.

Может, будет понятнее, если разобрать шахматную доску и все её строки собрать в одну длинную. Для краткости доску 3х3:
0 1 0
1 0 1
0 1 0

размотать:
0 1 0 1 0 1 0 1 0
Как видно, клетки меняют свой цвет всегда, в том числе при переходе к следующей строке.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
temp.push(s); - формируется одна строка

a13.push(temp); - добавляется к другим строкам

if (s == 0) {
             s = 1;
             }  else {
               s = 0;
            } 
}
- начинаем с 0-ля или с 1-цы следующую по порядку клетку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы