私はいつかこれで立ち往生し、誰かが私を導くことができるかどうか疑問に思っていました。 私はユーザーに文字を入力させようとしていますが、それがスイッチケースの1つと一致しない場合は、ユーザーに依頼し続ける必要があります。私のコードはその部分をうまく処理します。この問題は、ユーザーが正しい文字を入力しようとしたときに発生し、コードが特定のケースではなくデフォルトを出力し続ける場合に発生します。 ご協力いただければ幸いです! はユーザーが正しい文字を入力してもループし続けます
while(!flag){
switch (endChar) {
case 'T':
case 't':
modFlags[0] = true;
flag = true;
break;
case 'P':
case 'p':
modFlags[1] = true;
flag = true;
break;
case 'W':
case 'w':
modFlags[2] = true;
flag = true;
break;
case 'L':
case 'l':
modFlags[3] = true;
flag = true;
break;
case 'I':
System.out.print("sd");
fileName = updateFileName(sc, fileName);
flag = true;
break;
case 'i':
fileName = updateFileName(sc, fileName);
flag = true;
break;
case 'O':
case 'o':
break;
case 'D':
case 'd':
break;
case 'M':
case 'm':
modeBoth = true;
flag = true;
break;
case 'H':
case 'h':
showMenu = false;
flag = true;
break;
default:
System.out.println("Unknown Option.");
System.out.print("Enter action: ");
sc.next();
break;
// flag = false;
}
}
'endChar'はどこで更新しますか?ループを通過するたびに更新する必要があります。あなたは今、それを逃しています。 –
別のメソッド(promptMenu)から単一の文字が返され、endCharに割り当てられます。 endCharを更新していないことがわかっているので、同じ文字をもう一度印刷し続けますが、promptMenuメソッドを使わずにendCharを更新する方法がわかりません – JRob