我不明白爲什麼在這種情況下,程序正常工作:INT轉換爲char,無限執行
do {
i = f1.read(); // i is integer
j = f2.read(); // j is integer
if (Character.toLowerCase(i) != Character.toLowerCase(j)) break;
} while (i != -1 && j != -1);
但在這種情況下,程序無限期執行:
do {
i =(char) f1.read();
j =(char) f2.read();
if (Character.toLowerCase(i) != Character.toLowerCase(j)) break;
} while (i != -1 && j != -1);
我知道INT字符可以隱式轉換,但如果我明確地轉換它 - 它不起作用,爲什麼? 或者我明白了什麼錯誤?
你在'while!循環中比較'i!= -1'。但''''是'char' ... –
請提供一個[最小測試用例](http://stackoverflow.com/help/mcve)來演示這種行爲。 –
還要注意,問題並非「無限執行」 - 這只是while循環的一個特性。這個問題(如果存在的話)僅僅是你看到'Character.toLowerCase'的行爲有所不同。 –