【问题标题】:Exception in thread “main” java.util.InputMismatchException "Temperature program"线程“主”java.util.InputMismatchException“温度程序”中的异常
【发布时间】:2014-04-23 04:41:19
【问题描述】:

有人可以帮忙吗?我可以让它运行,但是在输出消息“外部温度是多少:”“这里的数字”之后

输入 (C) 表示摄氏温度或输入 (F) 表示华氏温度:

一旦我输入 C 或 F,它就会给我这个错误信息

线程“主”java.util.InputMismatchException 中的异常

at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Tem.main(Tem.java:13)

请帮忙

import java.util.Scanner;

public class Tem 

{

    public static void main(String [] args) 

    { 

    Scanner scan = new Scanner(System.in); 
            String unit = ""; 

                System.out.print("What is the outside Temperature: "); 
                 double temp = scan.nextDouble(); 

                System.out.println("Type (C) for Celsius or (F) for Fahrenheit: "); 
                int input = scan.nextInt();

                if (input == 'F')
            { 
                    temp = (temp - 32) * 5/9.0; 
                    unit = "Celsius."; 
            }           
                else if (input == 'C')
         { 
                temp = (temp * 9/5.0) +32; 
                unit = "Fahrenheit."; 
         }

    System.out.println("It is "+temp+" degrees "+unit);

    }

}

【问题讨论】:

  • 阅读 nextInt() 的 javadoc。

标签: java exception main inputmismatchexception


【解决方案1】:

好吧,"C" 和 "F" 是无效的 ints,所以这就是 InputMismatchException 的来源。但是你想要一封信,所以你应该调用next()而不是nextInt()来获取下一个令牌。

next() method 将返回一个String,您可以查看它是否是equals 到"C" 的"F"。

【讨论】:

  • 或获取charAt(0) 并作为字符进行比较。
猜你喜欢
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多