我正在尝试编写一个程序,该程序将读取一个文件,并在具有最多连续元音的文件中查找该单词。我通过从文件中获取每个新单词,将其转化为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
我刚刚意识到这两个,并修复它们(只是更新它),但它仍然无法正常工作。 –
提炼逻辑,只是检查字符,如果它是一个元音继续,否则走出循环,最后比较当前计数与最大计数,如果更大然后改变最大否则继续,下一个字 –