我正在編寫一個哈希表並縮小了問題的來源。我的循環出了問題,但它沒有給我任何錯誤,所以我可以調試它
void put(String word, int line)
{
boolean flag = true;
int val = getValue(word);
val = val%10;
System.out.println(val);
while (flag)
{
if(total >= words.length)
{
System.out.println("2");
if(words[val] == null)
{
System.out.println("3");
total++;
words[val] = new Word(word);
words[val].addLine(line);
System.out.println(word);
flag = false;
}
else if (words[val].equals(word))
{
System.out.println("4");
words[val].addOne();
words[val].addLine(line);
flag = false;
}
val++;
if (val == words.length)
val=0;
System.out.println("5");
}
}
System.out.println("2");
}
它只會打印val,然後繼續給我一個加載標誌。也許循環有問題嗎?但如果是這樣,爲什麼它不能打印2-5?任何建議真的會被讚賞。
錯誤,也許'total'小於'words.length'? – Howard
它似乎沒有在任何地方初始化'total'。 –
我聞到無限循環的可能性。有值可能會導致「標誌」永遠不會是假的,並且循環永遠不會結束(所以5和2都不會打印) – Nikki9696