使用switch语句将温度从华氏温度转换为摄氏温度,反之亦然

时间:2013-07-06 16:21:25

标签: java switch-statement

这是个问题。 请仅使用switch语句执行此操作。 这是我的代码。当我运行它时,它给了我错误。 SS错误http://prntscr.com/1dvvr7 帮我处理我的代码D:

public static void main(String[] args)
{
    double Degrees_F,f,F;
    double DegreesC,c,C;
    double x;
    int temp;

    Scanner keyboard = new Scanner(System.in);

    System.out.println("Enter temperature ");
    x=keyboard.nextInt( );

    System.out.println("Enter C or c for Celcius or an F/f for Fahrenheit");
    temp=keyboard.nextInt( );

    switch (temp)
     {
    case 'C':

        Degrees_F = 9*(x/5)+32;
        System.out.println(x+"n Fahrenheit is"+Degrees_F);

        break;
    case 'c':
        Degrees_F = 9*(x/5)+32;
        System.out.println(x+"n Fahrenheit is"+Degrees_F);


     }





}

}

3 个答案:

答案 0 :(得分:0)

您的问题在这里

temp=keyboard.nextInt( );

您可以将其他读者用作BuffererReader

char temp = keyboard.nextLine().charAt(0);

您的代码中的另一个问题:

temp应为char

switch(temp){
 case 'C': 
 case 'c':
    Degrees_F = 9*(x/5)+32; // Degrees_F should be degreesF
    System.out.println(x+"n Fahrenheit is"+Degrees_F);
   break;
 default: 
    // show an error message;
}

//另一个

 System.out.println("Enter temperature ");
    x=keyboard.nextDouble( );

答案 1 :(得分:0)

您期望获得String/char值并尝试获得int

答案 2 :(得分:0)

首先,您正在扫描一个int,但要求用户输入一个字符。

此外,看起来您正在扫描Ints,但是您将该值存储为double。这会限制用户在我想到的输入方面。