作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简单地解释一下,我应该让用户输入名称消息的接收者,然后让他们输入消息正文,这可以有多条线路。如果他们输入空行,则消息正文结束并他们可以在开关中选择另一种情况。
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
使用两个不同的 Scanner 对象,但也没有运气。
最佳答案
您应该将 next
替换为 nextLine
。 next
,如文档所述,如果它与从指定字符串构造的模式匹配,则返回下一个标记,这不是您想要的。
尝试以下操作:
System.out.println("Recipient: ");
recip = menuScan.nextLine();
m = new Message(user,recip);
System.out.println("Enter message. Blank line to quit.");
mbody = menuScan.nextLine();
while(!mbody.equals("")) {
m.append(mbody);
mbody = menuScan.nextLine();
}
ms.deliver(m);
System.out.println("Messgae sent.");
关于java - (Java) 在 Switch Case 中使用空行退出 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118447/
我是一名优秀的程序员,十分优秀!