我目前正在开发一个java项目。我正在制作电话簿。我使用开关来选择用户是否要输入数字或名称。问题是,当我使用开关时,它告诉用户输入数字,它工作得很好,但当我使用'选择'这使用户输入它不起作用的字符串。在运行框中,我无法输入字符串。请帮忙。这是代码。 案例1和案例3都没有工作。
$scope.foo = 3;
$scope.$eval(‘foo = 5’);
$scope.foo; // returns 5
答案 0 :(得分:1)
首先,你忘了在默认情况下放置中断,但它不会影响解决你的用例。出现这种情况是因为当您使用scan.nextInt()获取输入时,其设置指针位于该特定行的末尾。所以只要养成习惯,如果你正在输入int,那么你需要立即输入字符串,然后在下一次输入之前添加额外的 scan.nextLine()。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String name = new String();
int choice = scan.nextInt();
switch (choice) {
case 1:
scan.nextLine();// changes
System.out.println("\nWho would you like to call?");
name = scan.nextLine();
CallContact(name);
break;
case 2:
scan.nextLine();
System.out.println("\nWhich Contact You Want to Search?");
name = scan.nextLine();// changes
break;
case 3:
scan.nextLine();// changes
System.out.println("\nWhich Name You Want to Save?");
name = scan.nextLine();
System.out.println("\nWhat is the Number of the person you want to save?");
long number = scan.nextLong();
SaveContact(name, number);
break;
default:
break;//improve
}
}
答案 1 :(得分:1)
始终使用scan.nextLine()接收输入,然后以所需格式转换接收的输入。
int choice = Integer.parseInt(scan.nextLine());