我正在研究 Java 中的循环算法,并且我有一个无法正常工作的循环。我相信这是我遗漏的一个简单的逻辑错误。exec[] 数组保存 CPU 中进程的执行时间。我需要从那个时间中减去 quantam,或者如果小于 quantam 则剩余的时间量。然后我需要它来检查下一个过程。每个进程应该有一次通过,直到执行时间为 0。总和确保语句在有任何一个需要运行的进程时继续运行。总和只是将所有数组元素时间相加。
while (sum != 0) {
int show = i + 1;
if (exec[i] != 0 && exec[i] > quant) {
exec[i] = exec[i] - quant;
sum = sum - quant;
JOptionPane.showMessageDialog(null, "Process" + " " + show + " is at" + " " + exec[i]);
JOptionPane.showMessageDialog(null, "sum" + " " + " is " + sum);
if (i == irq - 1) {
i = 0;
} else {
i++;
}
}
if (exec[i] != 0 && exec[i] < quant) {
exec[i] = exec[i] - exec[i];
sum = sum - exec[i];
JOptionPane.showMessageDialog(null, "Process" + " " + show + " is at" + " " + exec[i]);
JOptionPane.showMessageDialog(null, "sum" + " " + " is " + sum);
if (i == irq - 1) {
i = 0;
} else {
i++;
}
}
}
请让我知道是否有修复或是否需要更多信息。谢谢!