我试图让我的用户输入不通过限制哪些用户可以输入崩溃我的程序,如:用户输入检查INT仅
- 仅是一个int
- 是1-30 之间
我写的代码只能工作到某个特定的点。如果你输入的不是int,它会检查它并要求你再次输入。然后再一次,如果你继续输入任何东西,但一个int我有另一个while循环,如果它键入一个int,并且如果它在1-30区外,那么它会要求用户再次输入。但是在此之后,如果用户输入另一个“除int外的任何东西”,程序将崩溃。我试图结合sc.hasnextint()
和1-30条件之间的输入检查,但如果我把sc.nextint()
之前sc.hasnextint()
和用户输入任何东西,但一个int,程序崩溃。如果我把它放在condtion循环之后,那么用户输入将不会被声明。
int choose;
System.out.print("type an integer: ");
Scanner sc=new Scanner(System.in);
while (!sc.hasNextInt()) {
System.out.println("only integers!: ");
sc.next(); // discard
}
choose=sc.nextInt();
while (choose<=0 || choose>30)
{
System.out.print("no, 1-30: ");
choose=sc.nextInt();
}
sc.close();
“*该程序会崩溃*”在什么意义上它会崩溃?抛出异常,程序进入无尽的while循环,还是完全发生其他事情? – Vulcan
异常在线程 “主” java.util.InputMismatchException \t在java.util.Scanner.throwFor(未知来源) \t在java.util.Scanner.next(未知来源) \t在java.util.Scanner.nextInt (未知源) \t at java.util.Scanner.nextInt(Unknown Source) \t at Main.main(Main.java:21) – BubbleTree
我在我的程序中这样做,它不会工作,所以我问如果有人知道一种不同的编码方式来制作我想要的作品。例如: 输入一个整数:gfgh only整数!:43434 不,1-30:ffgg * crash * – BubbleTree