在无效输入后继续循环的程序?
Program that continues loop after invalid input?
我正在尝试创建一个程序,要求用户输入指数,然后取指数并执行运算 (e^exponent)。如果用户输入的值不是双精度值,程序会打印“无效输入。”,并继续要求指数。但是,我无法使此代码正常工作,当我在调试器中键入非双精度时,它会无限打印“输入指数:无效输入”。
importjava.util.Scanner;
class loops{
public static void main(String[] args) {
double exponent;
Scanner s = new Scanner(System.in);
do {
System.out.print("Enter exponent: ");
if(s.hasNextDouble()){
exponent = s.nextDouble();
double result;
result = Math.exp(exponent);
String x;
x = "Result = " + String.format("%.4f", result);
System.out.print(x);
System.out.print('\n');
System.out.println();
}
else {
System.out.println("Invalid input.");
}
}while (true);
当您到达 else 子句时,扫描器捕获的输入不会被重置。在打印 « Invalid Input » 之前添加 s.next();
应该可以解决您的问题。
我正在尝试创建一个程序,要求用户输入指数,然后取指数并执行运算 (e^exponent)。如果用户输入的值不是双精度值,程序会打印“无效输入。”,并继续要求指数。但是,我无法使此代码正常工作,当我在调试器中键入非双精度时,它会无限打印“输入指数:无效输入”。
importjava.util.Scanner;
class loops{
public static void main(String[] args) {
double exponent;
Scanner s = new Scanner(System.in);
do {
System.out.print("Enter exponent: ");
if(s.hasNextDouble()){
exponent = s.nextDouble();
double result;
result = Math.exp(exponent);
String x;
x = "Result = " + String.format("%.4f", result);
System.out.print(x);
System.out.print('\n');
System.out.println();
}
else {
System.out.println("Invalid input.");
}
}while (true);
当您到达 else 子句时,扫描器捕获的输入不会被重置。在打印 « Invalid Input » 之前添加 s.next();
应该可以解决您的问题。