我正在嘗試編寫一個程序,該程序將讀取一個文件,並在具有最多連續元音的文件中查找該單詞。我通過從文件中獲取每個新單詞,將其轉化爲charArray,然後評估數組中的字符以查看它們是否是元音來做到這一點。計數器保持連續元音的數量,然後如果當前字的計數器大於最大的前一個計數器值,則變量maxVowelString被設置爲當前計數器的值。連續元音計數在無限循環中結束
我已經解決了一些錯誤與我如何處理charArray,但是當我在終端中運行它,它什麼都不做,只是在一個無限循環中結束。我無法弄清楚是什麼原因造成的。有沒有人有任何想法? (我在編碼方面有點新,所以可能會出現邏輯錯誤或者我不明白的地方)。
更新:我提出了幾個建議的更改,並進行了調試。該程序陷入這個特定的循環,但我不明白爲什麼。
while ((i + n) < lowercase.length())
{
System.out.println("i + n " + (i + n));
if ((charsList.get(i+n) == 'a') || (charsList.get(i+n) == 'e') || (charsList.get(i+n) == 'i') || (charsList.get(i+n) == 'o') || (charsList.get(i+n) == 'u'))
{
isVowel = true;
counter++;
System.out.println("counter " + counter);
i++;
}
else
{
isVowel = false;
}
}
'while(isVowel = true)'將始終爲true,因爲您正在將值賦給isVowel。如果你想比較需要'==',但是它幾乎是一個無限循環,因爲你從不將它設置爲false。 – scrappedcola
我剛剛意識到這兩個,並修復它們(只是更新它),但它仍然無法正常工作。 –
提煉邏輯,只是檢查字符,如果它是一個元音繼續,否則走出循環,最後比較當前計數與最大計數,如果更大然後改變最大否則繼續,下一個字 –