我试图通过限制用户可以输入的内容来让我的用户输入不会使我的程序崩溃,例如:
- 只是一个 int
- 介于 1-30 之间
我编写的代码只能在一定程度上起作用。如果您输入的不是 int,它会检查它并要求您再次输入。如果您继续输入除 int 以外的任何内容,则再次输入。如果它确实键入了一个 int,我还有另一个 while 循环,如果它在 1-30 区域之外,那么它将要求用户再次输入。但是,之后如果用户键入另一个“除了 int 之外的任何内容”,程序就会崩溃。我尝试sc.hasnextint()
在 1-30 条件之间结合输入和检查输入,但如果我将输入放在sc.nextint()
之前sc.hasnextint()
并且用户输入除 int 以外的任何内容,程序就会崩溃。如果我把它放在条件循环之后,那么用户输入将不会被声明。
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();