【问题标题】:Java: for loop, incompatible typesJava:for循环,不兼容的类型
【发布时间】:2011-01-23 14:21:13
【问题描述】:
我正在尝试运行这个 for 循环;
for (int col= 0; grid[0].length; col++)
但是,每次我尝试编译时都会收到一条错误消息,指出“不兼容的类型 - 找到 int 但预期为 boolean”
我无法弄清楚我做错了什么!
【问题讨论】:
标签:
java
loops
boolean
int
for-loop
【解决方案1】:
第二条语句:grid[0].length 是一个整数。 for 循环中的第二条语句是条件语句,需要为布尔值。
如果你在 col 小于 grid[0] 的长度时尝试循环,那么你需要这个作为你的第二个语句:
col
【解决方案2】:
for (int col= 0; col < grid[0].length; col++) // See the typo
【解决方案3】:
grid[0].length 是消息引用的整数。此处应为布尔值:
col < grid[0].length
【解决方案4】:
您需要将代码更改为:
for (int col= 0; col<grid[0].length; col++)
【解决方案5】:
对于任何对此指定位置感兴趣的人:查看docs.oracle.com 以获取 Java 语言规范。第 14 章 §14.1 陈述了基本 for 循环的规则:
BasicForStatement:
for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement
附上以下内容:
Expression的类型必须是布尔型或布尔型,否则会出现编译时错误。
此特定引用取自 Java SE 17 规范。由于这篇文章是 11 多年前发布的(在此回复时几乎是 12 年),因此问题可能是指 Java SE 7,它具有相同的规则和几乎相同的措辞。