此問題可能最適合於對磁盤讀取調度有所瞭解的任何人。適用於陣列中的Java的
我的代碼:
for(int i = readqueue_tail; i<readqueue_head; i++)
我然後使用i到訪問元素在readqueue陣列,其上升到255。然而,一旦隊列被填充,它從0開始重新填充(如這些請求將被服務,這並不重要)。
我遇到的問題是從尾部搜索到readqueue_head,因爲當頭循環並再次超過0時,循環條件失敗。我將如何去解決這個問題?
此問題可能最適合於對磁盤讀取調度有所瞭解的任何人。適用於陣列中的Java的
我的代碼:
for(int i = readqueue_tail; i<readqueue_head; i++)
我然後使用i到訪問元素在readqueue陣列,其上升到255。然而,一旦隊列被填充,它從0開始重新填充(如這些請求將被服務,這並不重要)。
我遇到的問題是從尾部搜索到readqueue_head,因爲當頭循環並再次超過0時,循環條件失敗。我將如何去解決這個問題?
其他選項只是使用模數。
int i = readqueue_tail;
while (i != readqueue_head)
{
i = (i + 1) % 256;
}
int i = readqueue_tail;
boolean stop = false;
while(!stop) {
// process the queue item
// advance the position
if(i<readqueue_head) {
i++)
} else {
i = readqueue_tail;
}
}
這就是你想要做的?
感謝您的幫助,我開始使用這個,但切換到模(少代碼^^)。 – gdrules 2012-03-06 19:23:08
for(int i = readqueue_tail; i<readqueue_head; i++) {
if(readqueue_tail == readqueue_head)
break;
}
感謝您的幫助:) – gdrules 2012-03-06 19:24:39
for(int i = readqueue_tail; i<readqueue_head; i++) {
if (i == readqueue_head) {
i = readqueue_tail;
}
}
僅僅是明確的,這是一個無限循環。
完美,謝謝! – gdrules 2012-03-06 19:22:38