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
- 它处理分配,即分配给
y
在步骤 1 中计算的值,即y
因此,never 的值y
不会改变,for 循环也不会终止。
将其更改为此,它应该可以工作:
for (int y = 0; y < 8; y++){
推荐阅读
- javascript - Print.js 库正在打印 HTML 表单,但不打印输入字段的值
- mysql - MySQL:从不同的表中获取包含名称的行数,两个表都是相关的
- python - Python - 我的班级没有调用 __get__
- sql - 计算日期/时间变量的时差
- ruby-on-rails-3 - Net-SSH/Capistrano 问题:“无法解析 PKey:没有起始行”
- python - 客户端可以使用 Python 数据属性
- java - StyleableProperty:如何在运行时以编程方式更改值?
- yii2 - 带有 dhtmlx 调度程序的 yii2 并选择从服务器填充
- c - 为什么此代码适用于 gcc 6.3.0 而不是 4.9.2?
- javascript - VSCode 自定义“修复”选项,应用 linter 规则