为什么我在 Processing 中制作棋盘的代码不起作用?

Why doesn't my code for making a chessboard in Processing work?

我是编程新手!我正在尝试使用 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);
      }
      
    }

}

```

程序无法运行,因为这个 for 循环会永远运行:

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

原因是分配 y = y++ 执行以下操作:

  1. 它评估右侧的值,这将是 y
  2. 它处理 ++ 运算符,递增 y
  3. 的值
  4. 它处理赋值,即将步骤 1 中计算的值赋给 y,即 y

因此,y 的值永远不会改变,for 循环也永远不会终止。


将其更改为此,它应该可以工作:
for (int y = 0; y < 8; y++){