所以我的问题如下: 我在第12行得到一个错误,我想要解决,但没有找到结果。 我使用Eclipse来运行和编写代码。
这就是我的所作所为:
弹出错误
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at apples.main(apples.java:12)
为什么这不起作用?此外,我尝试在Eclipse之外的CMD中运行它,也没有成功。
import java.util.Scanner;
class apples
{
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
System.out.println("Select one of the following(absolute,ceil,floor,max,min,power,squareroot): ");
String code = scan.nextLine();
if (code.contains("absolute"))
{
System.out.println("Enter a number to get absolute value: ");
Scanner num1 = new Scanner(System.in);
double numberone;
double numberone1 = num1.nextDouble();
System.out.println(Math.abs(numberone1));
}
}
}
答案 0 :(得分:1)
InputMismatchException ,扫描程序抛出此异常,指示检索到的令牌与预期类型的模式不匹配,或者令牌超出预期类型的范围。
num1.nextDouble()
- >这里你的传递值与双正则表达式不匹配,或超出范围。
答案 1 :(得分:1)
如果我为您的程序输入了有效的输入输入,那么您的代码对我有用。
如果您收到InputMismatchException,则意味着您没有向扫描仪提供预期的输入。
double numberone1 = num1.nextDouble();
对于您的命令,您应该只提供Double值,否则它将抛出InputMismatchException
答案 2 :(得分:-1)
import java.util.Scanner;
public class Test{
private static Scanner scan;
private static Scanner num1;
public static void main(String[] args){
scan = new Scanner(System.in);
String code;
do{
System.out.println("Select one of the following(absolute,ceil,floor,max,min,power,squareroot): ");
code = scan.nextLine();
if (code.contains("absolute"))
{
System.out.println("Enter a number to get absolute value: ");
num1 = new Scanner(System.in);
//double numberone;
double numberone1 = num1.nextDouble();
System.out.println(Math.abs(numberone1));
}
}while(!code.contains("absolute"));
}
}