によるスイッチケースでループしながら終了、私は、メッセージ本文を入力するためにそれらを取得し、メッセージの 受信者の名前を入力するようにユーザを取得し、ためになってるいます は複数の行を持つことができます。彼らは空白行を入力すると、メッセージ本文が終了し、 彼らは、スイッチ内の別のケースを選択することができます。は(Javaは)簡単に説明するために、空行
case 'S':
case 's':
if(user.equals(" ")) {
System.out.println("No user logged in.");
} else {
System.out.println("Recipient: ");
recip = menuScan.next();
m = new Message(user,recip);
System.out.println("Enter message. Blank line to quit.");
mbody = menuScan.nextLine();
while(!mbody.equals("")) {
mbody = menuScan.next();
m.append(mbody);
}
ms.deliver(m);
System.out.println("Messgae sent.");
}
break;
しかし、今のように、whileループは完全にスキップされます。私はmenuScan.next()
と.nextLine()
にmenuScan.nextLine()
にrecip
、そしてmbody
を変更しようとしましたが、たまたま唯一の他の事は、メッセージ本文は永遠に行くです。
また、recip
とmbody
の2つの異なるスキャナオブジェクトを使用しようとしましたが、そこに運がありません。
使用条件の代わり – Gaktan
可能重複[(次の使用の後にスキップnextLine())、nextInt()または他のnextFoo()メソッド(http://stackoverflow.com /質問/ 13102045 /スキップ-nextlineアフタ - 次nextint・オア・その他-nextfoo-メソッドを使用して) –