【发布时间】: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] <= t != 0 && completion[i] != 1)
“操作符 != 未定义参数类型 boolean, int”
(PS:可能看起来很奇怪,因为它是从 C++ 翻译过来的)
【问题讨论】:
-
你希望
arrivalTime[i] <= t != 0做什么? -
这部分是问题:
arrivalTime[i] <= t != 0。你不能像那样级联检查。arrivalTime[i] <= 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;