我正在为一堂课做家庭作业。你必须计算这个月的工资。每次我尝试运行它时,它总是这样说:我如何修复它?线程“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);
}
}
它似乎失败的提示是:
"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