0

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

类型 (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);

    }

}
4

1 回答 1

2

好吧,"C"并且"F"不是有效int的 s,所以这就是InputMismatchException. 但是你想要一封信,所以你应该打电话next()而不是nextInt()得到下一个令牌。

next()方法将返回 a String,您可以查看它是否equals"C"of "F"

于 2014-03-17T19:25:20.947 回答