【发布时间】:2015-04-26 14:37:09
【问题描述】:
我在使用 java 中的函数时遇到问题。这是我的代码:
do{
System.out.print("Proceed to payment? (y/n) ");
input = scan.nextLine();
if((input.trim()).equals("y")){
break;
}
else if((input.trim()).equals("n")){
System.out.print("Come back next time, " + name + ".");
System.exit(0);
}
else{
System.out.println("Invalid response. Try again.");
}
}
while(true);
基本上,函数第一次循环时会“跳过”“input = scan.nextLine”并立即打印“无效响应。再试一次”。到终端。然后它允许用户输入一些东西,并正常工作。
是的,我已经在我的代码前面声明了输入、扫描 (java.util.Scanner;) 和名称。如果有人能指出我做错了什么,那将是一个很大的帮助!谢谢!
【问题讨论】:
-
您是否再次在此输入之前使用扫描?
-
不在同一个函数中,不过我确实在早期的函数中使用过它
-
好的,它是scan.next()之前的那个吗?
-
在同一功能中没有其他使用扫描。在之前调用的函数中,有一个scan.nextInt(),但我不知道它是如何影响它的。
-
由于 scan 是一个类变量,它仍然有部分
nextInt()输入,主要是 Scanner 缓存/缓冲区中的换行符(或Enter)
标签: java if-statement java.util.scanner