首页 > 解决方案 > 为什么我在处理中制作棋盘的代码不起作用?

问题描述

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

}

```

标签: processing

解决方案


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

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

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

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

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


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

推荐阅读