因此,我正在尝试使用Java制作GPA计算器,而我仍然坚持使用其中一个步骤.我正在尝试编写一个代码,该代码接受用户的输入,然后将其转换为数字,然后我将使用该数字来计算GPA.到目前为止,这是我的代码:
public class data {
public static void main(String[] args) {
String english;
double v1 = 0;
Scanner reader = new Scanner(System.in);
System.out.println("Enter your english grade");
english= reader.nextLine();
if (strcmp(english,"A+")==0) {
v1 = 4.4;
}
if (strcmp(english,"A")==0) {
v1= 4.0;
}
if (strcmp(english,"A-")==0) {
v1= 3.6;
}
if (strcmp(english,"B+")==0) {
v1= 3.4;
}
if (strcmp(english,"B")==0) {
v1= 3;
}
if (strcmp(english,"B-")==0) {
v1= 2.6;
}
if (strcmp(english,"C+")==0) {
v1= 2.4;
}
if (strcmp(english,"C")==0) {
v1= 2;
}
if (strcmp(english,"C-")==0) {
v1= 1.6;
}
if (strcmp(english,"D+")==0) {
v1= 1.4;
}
if (strcmp(english,"D")==0){
v1= 1;
}
if (strcmp(english,"D-")==0) {
v1= 0.6;
}
if (strcmp(english,"F")==0) {
v1= 0.0;
}
else {
v1=0.0;
}
System.out.println(v1);
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我在最后打印出V1只是为了检查,但是它一直将V1设为0.0,即用户输入"F"时的值.如果我像这样评论那段代码:
/*if (strcmp(english,"F")==0) {
v1= 0.0;
}*/
Run Code Online (Sandbox Code Playgroud)
然后它给出的输出值是0.6,即用户输入D-时的值.我想我应该在某个地方设置一个返回系统?虽然我真的不确定.任何帮助将不胜感激.
(如果它还没有建立,我是java的初学者:P)
编辑:伙计们,当我尝试使用Switch方法(我使用eclipse)时,它给了我这个错误:"无法为1.7以下的源级别打开String类型的值.只允许使用可转换的int值或枚举常量".它提供的解决方案导致进一步的复杂化,所以我想避免切换语句:/
小智 7
if (strcmp(english,"F")==0) {
v1= 0.0;
}
else {
v1=0.0;
}
Run Code Online (Sandbox Code Playgroud)
除此之外你说 - 只要它不是F,在v1中放0.0.
你编写它的方式v1将是0.0,除非english是"F".
你需要使用else if:
if (strcmp(english,"A+")==0) {
v1 = 4.4;
} else if (strcmp(english,"A")==0) {
// and so on
Run Code Online (Sandbox Code Playgroud)
有些Java人喜欢switch上弦.但这是Java中一个相当新的特性break,你需要引入的语句可能会混淆.