4

所以我的问题如下:我在第 12 行收到一个我想解决但没有找到结果的错误。我使用 Eclipse 来运行和编写我的代码。

这就是我所做的:

  1. 我写绝对
  2. 我输入一个带小数的数字
  3. 弹出一个错误说

    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));
      }
   }
}
4

3 回答 3

1

如果我为您的程序输入有效的输入,您的代码对我有用。

如果您收到InputMismatchException意味着您没有向 Scanner 提供预期的输入。

double numberone1 = num1.nextDouble();

为此,从您的命令中,您应该只给出 Double 值,否则它会抛出InputMismatchException

于 2012-11-12T08:23:07.140 回答
1

InputMismatchException,由 Scanner 引发的此异常,表示检索到的令牌与预期类型的​​模式不匹配,或者令牌超出预期类型的​​范围。

num1.nextDouble()-> 这里你的传递值与双正则表达式不匹配,或者超出范围。

于 2012-11-12T08:13:18.793 回答
-1

导入 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"));

    }
}
于 2014-02-21T21:47:56.873 回答