Java输入问题
今天我想做一个基本的练习,我遇到了这个问题:Java输入问题,java,input,Java,Input,今天我想做一个基本的练习,我遇到了这个问题: 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 Main.main(Ma
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 Main.main(Main.java:14)
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double salary = 0; // Salary excluded tax
int tax = 0; // % of tax
double taxTot = 0; // amount of tax
double totSalary = 0; // Salary with tax
System.out.println("Salary, please : "); //Input salary
salary = input.nextDouble();
if (salary <= 15000) { // <=15000
tax = 10;
} else if (salary>= 40000 && salary < 60000){ // >=40000
tax = 20;
} else { // over > 60000
tax = 30;
}
taxTot = salary / 100*tax;
totSalary = salary - taxTot;
System.out.println("Your tax is : " + taxTot + " Your salary : " + totSalary);
}
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
双倍工资=0;//工资不含税
整数税=0;//%的税
double taxTot=0;//税额
double totSalary=0;//带税工资
System.out.println(“工资,请:”;//输入工资
工资=输入。下一步加倍();
如果(工资=40000)
税=20;
}否则{//超过60000
税=30;
}
税收总额=工资/100*税收;
totSalary=工资-税收Tot;
System.out.println(“您的税为:+taxTot+”您的工资:+totSalary”);
}
}
如果扫描仪中的下一个输入与您尝试获取的类型不匹配,则会抛出java.util.InputMismatchException
。以下是一个示例:
Scanner input = new Scanner("hello");
double salary = input.nextDouble();
因此,问题很可能源于代码中的salary=input.nextDouble();
行,
原因是您没有输入有效的double
要测试程序的行为,可以像我前面写的那样在扫描器
构造函数中编写输入。
例如,您可以通过编写以下内容进行测试:
Scanner input = new Scanner("9000");
因此,薪水将是9000英镑,因此,如果您通读了这篇文章,它会告诉您
基本上,您程序中的输入与扫描仪类型不匹配。因此,您可能会出现错误,因为您的输入不是双精度的
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
5,0和5.0之间存在差异我编译并运行了您的程序。我输入数字时没有错误。但是,当输入字母时,我得到了与您相同的错误,这并不奇怪。您的输入是什么?我似乎无法复制您的问题。复制并粘贴,对我来说效果很好。您何时提供了什么样的输入你运行这个应用程序?啊,我明白了,是的,现在我明白了输入问题。我试着像你说的那样,但当我尝试键入十进制数时,我会出错,我的意思是,如果我键入13.548,我会出错,程序停止运行。但是当我键入整数时,程序运行得很好。非常感谢。我现在知道问题出在哪里了。
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);