大文字を小文字に変換するコードを書いています。逆も同様です。 break
を使用して、入力が'.'
のときはいつでもループを終了できるようにしていますが、動作していないようです。何かアドバイスをいただければ幸いです!私はまた、ループが終了する前に繰り返されたすべての時間のカウントを作成したい。それについてどうすればいいのですか?入力用に特定の文字を受け取ったときにループを停止する
public static void main(String[] args) throws java.io.IOException {
char choice, ignore = 0;
for (; ;) {
do {
System.out.print("Please enter a upper or " + "lower case letter(. to quit)");
choice = (char) System.in.read();
if ((char) choice > 64) {
ignore = (char) (choice + 32);
}
if ((char) choice > 96) {
ignore = (char) (choice - 32);
}
System.out.print(ignore);
System.out.println("\n");
if (choice == '.') {
break;
}
do {
ignore = (char) System.in.read();
} while (ignore != '\n');
} while ((char) choice > 64 | (char) choice < 123 | choice != '.');
}
}
'for(;;)'ループではなくdo-whileループを使用してください。 –
あなたが壊れることを必要とする「無限ループ」を避けるために、ロジックをよりよく構成する必要があります。ループは条件付きで終了する必要があります –
ネストループを使用しています。提案については、http://stackoverflow.com/q/886955/4793951を参照してください。 – Zircon