簡要解釋一下,我應該讓用戶輸入消息的收件人名稱,然後讓他們輸入消息正文,可以 有多行。如果他們輸入一個空白行,則消息正文結束,並且他們可以在交換機中選擇另一個案例。(Java)退出While循環在空行開關的情況下
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循環被完全跳過。我試過將recip
更改爲menuScan.nextLine()
,mbody
至menuScan.next()
和.nextLine()
,但唯一發生的其他事情是郵件正文永遠持續。
我也嘗試過使用兩個不同的掃描儀對象recip
和mbody
,但沒有運氣。
使用條件代替 – Gaktan
的可能的複製[跳躍nextLine()使用後的next(),nextInt()或其它nextFoo()方法](http://stackoverflow.com/questions/13102045/skip-nextline-after-using-next-nextint-or-other-nextfoo-methods) –