如何在if语句[Java]中使用键盘中的char

时间:2013-10-15 16:04:02

标签: java

我的代码有点问题。我需要进行从摄氏温度到华氏温度的温度转换,反之亦然,用户选择“F”或“C”(小写或大写),但似乎无法弄清楚如何正确地进行。我不知道怎么让它认识到变量应该通过键盘输入。

 Scanner Keyboard = new Scanner(System.in); 
        System.out.println("Type C to convert from Fahrenheit to Celsius or" + 
        "F to convert from Celsius to Fahrenheit."); 
        char choice = Keyboard.nextLine().charAt(0);
        //Get user input on whether to do F to C or C to F 
        if (choice == F) //Fahrenheit to Celsius
            { 
                System.out.println("Please enter the temperature in Fahrenheit:"); 
                double C = Keyboard.nextDouble();
                double SaveC = C;
                C = (((C-32)*5)/9);
                System.out.println(SaveC + " degrees in Fahrenheit is equivalent to " + C + " degrees in Celsius."); 
            } 
        else if (choice == C) 
            { 
                System.out.println("Please enter the temperature in Celsius:"); 
                double F = Keyboard.nextDouble(); 
                double SaveF = F;
                F = (((F*9)/5)+32); 
                System.out.println(SaveF +" degrees in Celsius is equivalent to " + F + " degrees in Fahrenheit."); 
            } 
        else if (choice != C && choice != F) 
            { 
                System.out.println("You've entered an invalid character.");
            } 

2 个答案:

答案 0 :(得分:1)

您可以使用扫描仪读取输入,然后调用以查看它是否等于“C”或“F”

例如,

  

扫描仪x =新扫描仪(System.in);

     

String choice = x.nextLine();

if (choice.equals("F") || choice.equals("f")) { 
    blah blah blah
}
if (choice.equals("C") || choice.equals("c")) {
    blah blah blah 
}

答案 1 :(得分:0)

choice变量进行比较时,您的F和C字符应该用单引号括起来,使它们成为 character literals 。使用||(意为“或”)来测试大写或小写。即,

if (choice == 'F' || choice == 'f')
    ...
else if (choice == 'C' || choice == 'c')
    ...
else
    ...