【问题标题】:The operator < is undefined for the argument type(s) boolean, int运算符 < 未定义参数类型 boolean, int
【发布时间】:2014-12-08 04:22:04
【问题描述】:

我是处理新手,我遇到了麻烦。我不断收到以下代码粗体部分的错误消息。我的语法错了吗?

void block(int x, int y, int s, color tinto) {
    fill(tinto);
    for (int i = 0; i < 3; i++) {
        triple(x, y+i*s, s, tinto);
    }
    if (0 < i < 3 && 6 < i < 9) {  // HERE
        tinto = 255;
    }
    else {
        tinto = tinto - 200;
    }
}

【问题讨论】:

  • 您收到哪条错误消息?
  • if (0&lt;i&lt;3 &amp;&amp; 6&lt;i&lt;9){ 不合法。不确定您要做什么,但如果您想说 i 应该在 0 和 3 之间,那么您需要将其写为 if (i &gt; 0 &amp;&amp; i &lt; 3) 并从那里开始。您可以根据需要拥有任意数量的 &&s 或 ||s。
  • 您必须向我们解释您要做什么。即使 Java 有一个范围运算符,就像某些人假设您正在尝试做的那样,0&lt;i&lt;3 &amp;&amp; 6&lt;i&lt;9 也永远不会评估为真。 (i 不能介于 0 和 3 之间,也不能同时介于 6 和 9 之间……)
  • 这甚至没有意义,因为i 不能同时介于 0 和 3 之间以及 6 和 9 之间。

标签: java processing


【解决方案1】:

在 Java 中,要检查变量是否在范围内,您必须将语句分成两部分,如下所示:

if (0 < i && i < 3 && 6 < i && i < 9){

}

但是,此特定代码永远不会正确,因为您要求它位于两个不同的范围内。也许您打算检查任一范围?

if (0 < i && i < 3 || 6 < i && i < 9){

}

注意 || or 运算符而不是 && 和运算符。

【讨论】:

    【解决方案2】:

    语法无效,我认为你的表达方式是错误的。你说i 必须在一个范围内并且在另一个范围内。我认为您的意思是写它可能介于两者之间。

    有效语法示例:不要写0 &lt; i &lt; 3,而是写成i &gt; 0 &amp;&amp; i &lt; 3

    试试这个:

    if ( (i > 0 && i < 3) || (i > 6 && i < 9) )
    

    请注意,以下内容(这显然是您试图做的)永远不会被评估为true,因为它不能在两个范围内。

    if ( (i > 0 && i < 3) && (i > 6 && i < 9) ) // incorrect
    

    【讨论】:

    • 我的表达肯定是错误的......我尝试了有效的语法,现在程序运行了,但它并没有改变中间3x3块的颜色。
    • @kairoseno 我们无法诊断您的程序,因为我们对此一无所知。如果您仍有问题,请在此站点上发布另一个问题,其中包含所需的所有相关代码。如果我的回答回答了您当前的问题,请通过单击我的回答左侧的复选标记将其标记为“已接受”。
    【解决方案3】:

    这不是有效的 java 表达式。试试:

    if (0<i && i<3 && 6<i && i<9){
    

    【讨论】:

      【解决方案4】:

      这段代码sn-p有两个不同的问题。首先,您已经在 for 循环内的“int”中定义了“i”变量。一旦退出 for 循环,就不再定义“i”的这个实例——所以下面的 if 语句不引用那个实例。为了克服这个问题,在 for 循环之前定义“i”...

      int i;
      for ( i=0; i<3; I++ ) {
          ...
      }
      if ( i ...
      

      这让我想到了第二个错误。语法“0 确实想测试一下 i 是否介于 1 和 2(含)之间,那么您必须将它们分解为单独的测试...

      if ( 0 < i && i < 3 ...
      

      最后...如果 i 的值介于 1 和 2(含)之间,那么它也不能介于 7 和 8(含)之间。因此,您编写的 if 语句将始终为假,即使在我们更正语法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-25
        • 2018-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 1970-01-01
        相关资源
        最近更新 更多