当前位置: 首页 > 知识库问答 >
问题:

线程“主”java.util.输入不匹配异常异常

程沛
2023-03-14

我正在为一堂课做家庭作业。你必须计算这个月的工资。每次我尝试运行它时,它总是这样说:我如何修复它?线程“main”java.util.InputMismatchException中的异常

java.util.Scanner.throwFor(Scanner.java:864)

at java.util.Scanner.next(扫描仪.java:1485)

java.util.Scanner.nextInt(Scanner.java:2117)

在java.util.Scanner.nextInt(Scanner.java:2076)

在 D2 主(D2.java:23)

import java.util.Scanner;

public class D2
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);

        int L1Cs = 80;
        int L2Cs = 120;
        int L3Cs = 160;
        int L1Ct = 100;
        int L2Ct = 140;
        int L3Ct = 180;
        int L1Csv = 100;
        int L2Csv = 150;
        int L3Csv = 200;
        int BSalary = 3000;
        int Stotal, Ttotal, SVtotal;

        System.out.println("Please enter your name");
        int name = sc.nextInt();

        System.out.println("How many sedans have you sold this month");
        int Sedans = sc.nextInt();

        System.out.println("How many trucks have you sold this month");
        int Trucks = sc.nextInt();

        System.out.println("How many SUVs have you sold this month");
        int SUVs = sc.nextInt();


        if(Sedans <= 10)
        {
            Stotal = (L1Cs * Sedans);
        }
        else if (Sedans >= 11 && Sedans <=20)
        {
            Stotal = (L1Cs*10 +(Sedans - 10) * L2Cs);
        }

        else
        {
            Stotal = (L1Cs*10 +L1Cs *10 + (Sedans - 10) * L3Cs);
        }

        System.out.println("Your comission for the sedans is:" + Stotal);


        if(Trucks <= 10)
        {
            Ttotal = (L1Cs * Trucks);
        }
        else if (Trucks >= 11 && Trucks <=20)
        {
            Ttotal = (L1Ct*10 + (Trucks - 10) * L2Ct);
        }
        else
        {
            Ttotal = (L1Ct*10 + L2Ct *10 + (Trucks - 10) * L3Ct);
        }
        System.out.println("Your comission for the trucks is:" + Ttotal);


        if(SUVs <= 10)
        {
            SVtotal = (L1Cs * SUVs);
        }
            else if (SUVs >= 11 && SUVs <=20)
        {
            SVtotal = (L1Csv*10 + (SUVs  - 10) * L2Csv);
        }
        else
        {
            SVtotal = (L1Csv*10 + L2Csv *10 + (SUVs - 10) * L3Csv);
        }
        System.out.println("Your comission for the SUVs is:" + SVtotal);

    double comission = (Stotal + Ttotal + SVtotal);
    double MSalary = (comission + 3000);
    }
}

共有1个答案

谷梁煌
2023-03-14

它似乎失败的提示是:

"Please enter your name"

如果您输入的是您的名称,而不是整数,这就是它抛出异常的原因。扫描器将查找一个整数,而您的名字不是整数。您可能需要替换:

int name = sc.nextInt();

跟:

String name = sc.next();

或类似的东西,将名称作为字符串获取。

 类似资料:
  • 当我尝试在错误代码下面运行但得到错误时,我也使用了“givenArray[i]=sc.next();或givenArray[i]=sc.nextLine();”但仍然失败。我尝试了许多不同的方法,但仍然得到相同的错误。似乎扫描仪无法读取数组我需要此代码的帮助,请提前谢谢。 提供的输入:输入第一个数组的长度:4并单击Enter, 输入第二个数组的长度:4并单击Enter, 输入第一个数组:2,3,4

  • 节目: 当我输入更多的数字时,会抛出一个线程异常(线程“main”java.util.InputMismatchException中的异常) 输出: 输入您的选择:(选择0打印说明)4输入第一个要分割的数字:9999999999 异常发生...java.util.输入错误匹配异常:对于输入字符串:"9999999999" 输入您的选择:(选择0打印说明)异常线程主java.util.输入错误匹配异

  • (更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?

  • 我只是在练习java,目前我正在试验getter/setter方法和构造函数。java程序的工作原理是,我能够将用户输入存储到对象中,但当我将字符串“Dice and rollers”输入到gametype字符串变量中时,会出现一个挂起的未捕获异常InputMismatch错误。 有人能给我解释一下这是为什么吗? 另外,我在下面分享了我的源代码。 上面的是超类,下面的源代码是构造函数和getter

  • 我有这个代码,我想捕捉字母异常,但它一直有以下错误: 这是我的代码:

  • 我对Scanner有一个问题,因为它似乎采用输入值类型并强制用户下次输入值为相同类型。我找不到此代码不起作用的任何原因,并给我一个InputMismatchException,因为我已经编写了一百万次这样的代码并且没有问题。 这个问题不仅仅是register()方法的问题,而是整个程序的问题,例如下面的代码: 如果其中一种方法(如 register)要求用户输入字符串,则 int user=inp