java Switch语句,用于根据用户输入确定字母等级(十进制)
我的老师想让我使用switch语句,但我在计算学生的分数,本质上我想使用double,但我不能。程序应该要求用户输入,然后学生输入哪个数字(例如:92.99),根据教学大纲打印出字母分数。请帮忙! 此外,这已经不能正常工作了。它不会打印出字母等级。 这就是我到目前为止所做的:
public class calculate {
private static String gradefinal;
private static char grade;
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
// variable declaration
Scanner in = new Scanner(System.in); //Input device scanner
double finalgrade = 0.0;
// input
String first_name; //Holds first name
System.out.print("Enter your first name: ");
first_name = in.next();
String last_name; //Holds last name
System.out.print("Enter your last name: ");
last_name = in.next();
String major; //Holds user's major
System.out.print("Enter your intended major: ");
major = in.next();
String ist; //Holds user's class number
System.out.print("Enter the IST class you are in: ");
ist = in.next();
String final_grade; //Holds user's letter grade
System.out.print("Enter your final grade: ");
final_grade = in.next();
// process
if (finalgrade <= 59.99)
{
grade = 'F';
}
else if (finalgrade >= 90.00)
{
grade = 'A';
}
else if ((finalgrade <= 89.99) && (finalgrade >= 79.99))
{
grade = 'B';
}
else if ((finalgrade <= 79.99) && (finalgrade >= 69.99))
{
grade = 'C';
}
else if ((finalgrade <= 69.99) && (finalgrade >= 60.00))
{
grade = 'D';
}
//output
System.out.printf("First Name: %s\nLast Name: %s\nIntended Major: %s\nIST Class: %s\nYour final grade is: %s\nfinal letter grade: %s",first_name, last_name, major, ist, final_grade, grade);
}
}
# 1 楼答案
正如您所了解的,开关中不能使用
double
The Switch Statement
一个选项是将} 中,然后获取其
double
自动装箱到^{int
值:# 2 楼答案
好的,这是家庭作业,所以我会尽量减少代码
我认为这里有几个选项,这取决于你可以使用什么
1)我认为最简单的选择是将double“转换”为字符串,并使用带有字符串第一个字符的switch语句。所以如果它以9开头,它将是a,因为你不是在计算a+/a——看起来是这样
2)可以四舍五入到最近的十位,将double转换为
int
,并将switch语句与int
一起使用。这样你只需要检查4个数字。在这里default
将是你的朋友# 3 楼答案
把它绕到最近的10秒处,把它变成一根绳子,然后打开绳子: