Почему мой код для создания шахматной доски в обработке не работает?

#processing

#обработка

Вопрос:

Я новичок в программировании! Я пытаюсь создать шахматную доску, используя Processing (язык, использующий синтаксис, аналогичный Java).

Почему это не работает?

 void setup(){
  //5.b In setup() set the size to 350, 350 
  size(350,350);
  
  for (int y = 0; y < 8; y = y  ){
    for (int x = 0; x < 8; x  ){
      if ((y x 1) % 2 == 0 ){
        fill(255);
      }else{
        fill(0);
      }
      rect(50*x,50*y,50,50);
      }
      
    }

}

```
  

Комментарии:

1. Не могли бы вы показать, что вы ожидаете увидеть на экране, и что получается вместо этого?

Ответ №1:

Программа не работает из-за этого цикла for, который выполняется вечно:

 for (int y = 0; y < 8; y = y  ){
  

Причина в том, что y = y назначение выполняет следующее:

  1. он оценивает значение правой стороны, которое будет y
  2. он обрабатывает оператор , увеличивая значение y
  3. он обрабатывает присвоение, то есть присваивает y значение, вычисленное на шаге 1, которое y

Следовательно, значение y never не изменяется, и цикл for никогда не завершается.

Измените его на это, и он должен работать:

 for (int y = 0; y < 8; y  ){
  

Комментарии:

1. Вчера использовал 30 минут и не мог понять, почему это не сработает. Спасибо, что решили мою проблему!