为什么我在 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++
执行以下操作:
- 它评估右侧的值,这将是
y
- 它处理 ++ 运算符,递增
y
的值
- 它处理赋值,即将步骤 1 中计算的值赋给
y
,即 y
因此,y
的值永远不会改变,for 循环也永远不会终止。
将其更改为此,它应该可以工作:
for (int y = 0; y < 8; y++){
我是编程新手!我正在尝试使用 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++
执行以下操作:
- 它评估右侧的值,这将是
y
- 它处理 ++ 运算符,递增
y
的值
- 它处理赋值,即将步骤 1 中计算的值赋给
y
,即y
因此,y
的值永远不会改变,for 循环也永远不会终止。
将其更改为此,它应该可以工作:
for (int y = 0; y < 8; y++){