Java 当用户输入正确时停止程序运行,如果不正确,请反复给机会
我是java编程的初学者,有需要完成的任务,正在寻找一些有用的提示。编写程序需要用户正确的浮点输入,如果输入不正确,程序会给另一个机会,直到正确输入,我的问题是,当我输入不正确的输入时,它会不停地运行,有什么想法吗Java 当用户输入正确时停止程序运行,如果不正确,请反复给机会,java,Java,我是java编程的初学者,有需要完成的任务,正在寻找一些有用的提示。编写程序需要用户正确的浮点输入,如果输入不正确,程序会给另一个机会,直到正确输入,我的问题是,当我输入不正确的输入时,它会不停地运行,有什么想法吗 public static void main(String[] args) { Scanner in = new Scanner(System.in); float f = 0; int x = 1; do { try {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
float f = 0;
int x = 1;
do {
try {
System.out.print("Enter an float:");
f = in.nextFloat();
x =2;
} catch (InputMismatchException e) {
System.err.println("Incorrect entry.");
}
System.out.println("Your entry is:" + f);
}
while(x==1);
}
执行此操作,您将从程序中获得所需的输出
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
float f = 0;
int x = 1;
do {
try {
System.out.print("Enter an float:");
f = in.nextFloat();
x = 2;
} catch (InputMismatchException e) {
System.err.println("Incorrect entry.");
in.next();
}
} while (x == 1);
System.out.println("Your entry is:" + f);
}
您只需在catch块中添加
in.next()
,即可继续此过程。执行此操作,您将从程序中获得所需的输出
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
float f = 0;
int x = 1;
do {
try {
System.out.print("Enter an float:");
f = in.nextFloat();
x = 2;
} catch (InputMismatchException e) {
System.err.println("Incorrect entry.");
in.next();
}
} while (x == 1);
System.out.println("Your entry is:" + f);
}
您只需在catch块中添加
in.next()
,即可继续此过程。作为接受答案的替代方案,您可能需要:
1) 检查下一个标记是否为浮点hasNextFloat()
2) 如果不是,则吞下整行nextLine()
这样做的好处是可以避免错误的输入行包含多个标记(例如:“aa bb cc”)。作为可接受答案的替代方案,您可能需要: 1) 检查下一个标记是否为浮点
hasNextFloat()
2) 如果不是,则吞下整行nextLine()
这样做的好处是避免了具有多个标记的错误输入行(例如:“aa bb cc”)。Add
in.nextLine()代码>在<<代码> > 循环,吞下剩余的行。在这种情况下,我们可以考虑正确的输入,我已经执行了程序输入3,7,45.45,它只运行一次。不正确的输入的任何例子。不正确的输入可以是任何东西,例如字母,输入JBIVREBV,你会看到,正确的输入,是浮点数,我现在试试Bergerin.nextLine();不帮助在.nextLine()中添加代码>在<<代码> > 循环,吞下剩余的行。在这种情况下,我们可以考虑正确的输入,我已经执行了程序输入3,7,45.45,它只运行一次。不正确的输入的任何例子。不正确的输入可以是任何东西,例如字母,输入JBIVREBV,你会看到,正确的输入,是浮点数,我现在试试Bergerin.nextLine();非常感谢@abhishekkumar,现在它可以工作了。如果你的问题已经解决,请选择这个作为公认的答案。再次感谢感谢@abhishekkumar,现在它可以工作了。如果你的问题已经解决,请选择这个作为公认的答案。再次感谢