我的代码有点问题。我需要进行从摄氏温度到华氏温度的温度转换,反之亦然,用户选择“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.");
}
答案 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
...