gpt4 book ai didi

Java 输入问题

转载 作者:行者123 更新时间:2023-11-30 02:57:58 26 4
gpt4 key购买 nike

今天我试图做一个基本练习,但遇到了这个问题:

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

最佳答案

java.util.InputMismatchException如果 Scanner 中的下一个输入可能会被抛出与您想要获取的类型不匹配。这是一个例子:

Scanner input = new Scanner("hello");
double salary = input.nextDouble();

所以问题很可能源自 salary = input.nextDouble();你的代码中的一行,原因是您没有输入有效的 double .

要测试程序的行为,您可以将输入写入 Scanner构造函数就像我之前写的那样。例如,您可以通过编写以下内容进行测试:

Scanner input = new Scanner("9000");

这样salary将是 9000,所以从 salary <= 15000 , tax将设置为 10。将值更改为其他值以获得不同的结果,例如:

Scanner input = new Scanner("41000");

当您习惯于使用 Scanner 时,可以将固定字符串参数改回 new Scanner(System.in)并运行完整的程序。

关于Java 输入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36728461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com