Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2020, 04:18
Аватар для orlovski_y
Новичок на форуме
Отправить личное сообщение для orlovski_y Посмотреть профиль Найти все сообщения от orlovski_y
 
Регистрация: 27.07.2020
Сообщений: 2

Вопрос по циклам, как работает код.
Здравствуйте. Только начал изучать JS, столкнулся с трудностями при выполнении следующего упражнения:
Напишите программу, создающую строку, содержащую решётку 8х8, в
которой линии разделяются символами новой строки. На каждой позиции
либо пробел, либо #. В результате должна получиться шахматная доска.
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
Когда справитесь, сделайте размер доски переменным, чтобы можно было
создавать доски любого размера.

На просторах этого форума нашел следующее решение:
var result = "\n";
for (var row = 1; row <= 8; row++) {
  for (var cell = 1; cell <= 8; cell++) {
    result += (row % 2 == cell % 2) ? "#" : " "; //Можно еще побитово - (row & 1 == cell & 1)
  }
  result += "\n";
}
console.log(result);


В целом, мне понятны все операции, однако никак не доходит result += (row % 2 == cell % 2) ? "#" : " ";. По идее, # или " " ставится в зависимости от false или true в выражении слева от ? , но я не могу понять, как получается false, если на каждой итерации цикла и row и cell принимают равные значения, а значит и остаток у них равный.


Прошу прощения за столько элементарный вопрос, но я правда не могу догнать

Последний раз редактировалось orlovski_y, 27.07.2020 в 04:21. Причина: Опечатка
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2020, 06:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это смотря как решать, способов то будет много:

var row = 8, col = 8, sumbol = '#', square = '';

for(var i=0; i<row; ++i) square += sumbol.repeat(col) + '\n'; 

console.log(square)
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2020, 07:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от orlovski_y
row и cell принимают равные значения
почему? условно при row = 1 , cell от 1 до 8 успеет принять значения.
row % 2 == cell % 2 --- перевод: когда чётность строки и чётность ячейки совпадают добавить "решётку", значит если номер строки делится без остатка (строка чётная) значит на такой строке, все чётные ячейки будут с решёткой, а на нечётной строке, во все нечётные ячейки добавится решётка.
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2020, 06:44
Аватар для orlovski_y
Новичок на форуме
Отправить личное сообщение для orlovski_y Посмотреть профиль Найти все сообщения от orlovski_y
 
Регистрация: 27.07.2020
Сообщений: 2

Спасибо за помощь!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работает код? Zay Общие вопросы Javascript 13 31.05.2020 14:57
Объясните как работает код wolf_ Ваши сайты и скрипты 0 06.08.2014 23:24
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
код нe работает в фаирфохе dadli Javascript под браузер 2 28.01.2012 21:18
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03