为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我得到InputMismatchException?

为什么我得到InputMismatchException?

慕斯709654 2019-08-23 10:03:14
为什么我得到InputMismatchException?到目前为止我有这个:public double checkValueWithin(int min, int max) {     double num;     Scanner reader = new Scanner(System.in);     num = reader.nextDouble();                              while (num < min || num > max) {                          System.out.print("Invalid. Re-enter number: ");          num = reader.nextDouble();                              }     return num;}还有这个:public void askForMarks() {     double marks[] = new double[student];     int index = 0;     Scanner reader = new Scanner(System.in);     while (index < student) {         System.out.print("Please enter a mark (0..30): ");         marks[index] = (double) checkValueWithin(0, 30);          index++;     }}当我测试这个,它不能采取双数,我得到这个消息:Exception in thread "main" java.util.InputMismatchExceptionat java.util.Scanner.throwFor(Scanner.java:909)at java.util.Scanner.next(Scanner.java:1530)at java.util.Scanner.nextDouble(Scanner.java:2456)at MarkingSystem.checkValueWithin(MarkingSystem.java:25)at MarkingSystem.askForMarks(MarkingSystem.java:44)at World.main(World.java:6)Java Result: 1我该如何解决?
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

而不是使用点,如:1.2,尝试输入如下:1,2。


查看完整回答
反对 回复 2019-08-23
?
弑天下

TA贡献1818条经验 获得超8个赞

由于您有手动用户输入循环,在扫描仪读取您的第一个输入后,它将通过回车/返回到下一行也将被读取; 当然,这不是你想要的。

你可以试试这个

try {
    // ...} catch (InputMismatchException e) {
    reader.next(); }

或者,您可以在通过调用读取下一个双输入之前使用该回车

reader.next()


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 664 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信