【问题标题】:Java: for loop, incompatible typesJava:for循环,不兼容的类型
【发布时间】:2011-01-23 14:21:13
【问题描述】:

我正在尝试运行这个 for 循环;

        for (int col= 0; grid[0].length; col++)

但是,每次我尝试编译时都会收到一条错误消息,指出“不兼容的类型 - 找到 int 但预期为 boolean”

我无法弄清楚我做错了什么!

【问题讨论】:

  • for (int col= 0; col

标签: 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&lt;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,它具有相同的规则和几乎相同的措辞。

          【讨论】:

            猜你喜欢
            • 2011-04-16
            • 2012-03-07
            • 2017-02-02
            • 1970-01-01
            • 2015-08-11
            • 1970-01-01
            • 1970-01-01
            • 2011-07-07
            • 2015-10-16
            相关资源
            最近更新 更多