【发布时间】:2018-01-20 08:32:29
【问题描述】:
我的代码显示不一致的结果。当我运行它时,if 操作仅在incoming.get(i).getSubmitionTime() 为奇数时执行。
这是我的代码:
public void decrementIncoming () {
for (int i = 0; i < incoming.size(); i++) {
incoming.get(i).setSubmitionTime(incoming.get(i).getSubmitionTime() - 1);
if (incoming.get(i).getSubmitionTime() == 0 ) {
Process p = incoming.get(i);
incoming.remove(i);
ready.add(p);
}
}
}
结果是
----- Time 6 -----
----- Running -----
1 : 5
----- Ready -----
3 : 6
5 : 6
7 : 8
----- Blocked -----
----- Incoming -----
2 : 6
4 : 6
6 : 8
8 : 8
但所有这些都必须同时进入状态准备就绪。 我做错了什么?
【问题讨论】:
-
这行(令人困惑的)代码到底是什么意思:
incoming.get(i).setSubmitionTime(incoming.get(i).getSubmitionTime() - 1);? -
贴出完整代码
-
@Kon 认为它是
if(--incoming[i].submitionTime == 0) { -
您是否在代码中遇到任何错误,如果是,您可以在这里发布吗
-
无论如何你的问题是完全不清楚的。您假设我们对您的代码的了解比我们实际了解的多得多。例如,您正在询问您的输出,但您的代码甚至没有打印语句。请发帖minimal reproducible example。
标签: java object arraylist process conditional