【问题标题】:ERROR: The operator != is undefined for the argument type(s) boolean, int错误:运算符 != 未定义参数类型 boolean、int
【发布时间】:2018-05-25 11:17:28
【问题描述】:

我已经用他们的答案查找了类似的问题,但我似乎无法弄清楚我自己对这个错误的看法。

欢迎提出任何建议!谢谢。

for (i = 0; i < x; i++) {
    if (arrivalTime[i] <= t != 0 && completion[i] != 1) {
        temp2 = (burst[i] + (t - arrivalTime[i])) / burst[i];
        if (hrr < temp2) {
            hrr = temp2;
            loc = i;
        }
    }

    t += burst[loc];
    completion[loc] = 1;
}

错误源于if (arrivalTime[i] &lt;= t != 0 &amp;&amp; completion[i] != 1)

“操作符 != 未定义参数类型 boolean, int”

(PS:可能看起来很奇怪,因为它是从 C++ 翻译过来的)

【问题讨论】:

  • 你希望arrivalTime[i] &lt;= t != 0 做什么?
  • 这部分是问题:arrivalTime[i] &lt;= t != 0。你不能像那样级联检查。 arrivalTime[i] &lt;= t 将成为一个布尔值,无论是真还是假,然后您尝试将其与数值 0 进行比较。另外,我很确定您可以按原样使用 C++ 中的语句,因为 Java 和 C++ 足够接近,可以在这种情况下工作。
  • @AntonH C++ 版本是“if (arrivalTime[i]
  • @FrancisHeroux 这也应该在 Java 中工作。 t 在哪里声明和初始化/分配?
  • @AntonH 这里public final void highestResponseRatioNext() { int[] arrivalTime = new int[6]; int[] completion = new int[6]; int i; int j; int t; int temp1; int temp2; int totalTat; int loc; int hrr; avgWaitTime = 0.0F; totalWaitTime = 0.0F;

标签: java eclipse loops


【解决方案1】:

你不能这样“双重比较”。试试这个 int 类型:

(t != 0) && (arrivalTime[i] <= t)

..但你可能更想要t &gt; 0

【讨论】:

  • 好吧,我输入了 ''if (t > 0) && (arrivalTime[i] 0' 是一个语法错误,应该被删除,当它被删除时,它不再识别变量 't' 并建议它被初始化......
  • 你当然必须正确使用括号。你必须能够做到的事情
  • 您必须原谅我,我已经有一段时间没有使用 Java 工作了。我已经尝试了几种用括号括起来的变体,我要么得到上述错误,要么得到“语法错误,插入“)语句”来完成 BlockStatements”
  • @FrancisHeroux 我相信 Eclipse 可以告诉你缺少的括号应该在哪里..
  • if (((t &gt; 0) &amp;&amp; ((arrivalTime[i] &lt;= t))) 并在最后的右括号下划线表示错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多