Java 连接两个if-else语句时如何修复错误?

Java 连接两个if-else语句时如何修复错误?,java,intellij-idea,Java,Intellij Idea,我是java新手,正在创建我的第一个项目,这是一个使用intellij的计算器。我创建了两个if-else语句,第一个语句取用户给出的平均值,并将其转换为分数。第二个应该拿分数,然后把它变成gpa。我已申报弦乐成绩;和字符串gpa if (avg >= 90.0 ) { grade = "A"; } else if (avg >=80.0) { grade = "B"; } else if (avg >=70.0){ grade = "C";

我是java新手,正在创建我的第一个项目,这是一个使用intellij的计算器。我创建了两个if-else语句,第一个语句取用户给出的平均值,并将其转换为分数。第二个应该拿分数,然后把它变成gpa。我已申报弦乐成绩;和字符串gpa

  if (avg >= 90.0 ) {
    grade = "A";
  } else if (avg >=80.0) {
    grade = "B";
  } else if (avg >=70.0){
    grade = "C";
  } else if (avg >=60.0) {
    grade = "D";
  } else {
    grade = "F";
  }
  System.out.println("Grade is  " + grade );
  if (grade = A ) {      
    gpa = "4.0";        
  } else if (grade = B) { 
    gpa = "3.0";        
  }
编辑:grade equals解决方案修复了带有红色下划线的第一个错误,但它不会编译。因此,为了得到两个print语句,我最终使用了一个switch语句

几个问题:

if (avg >= 90.0 ) {
   grade = "A";
} else if (avg >=80.0) {
   grade = "B";
} else if (avg >=70.0) {
   grade = "C";
} else if (avg >=60.0) {
   grade = "D";
} else {
   grade = "F";
}
System.out.println("Grade is  " + grade );
if (grade.equals("A")) {      
   gpa = "4.0";        
} else if (grade.equals("B")) { 
   gpa = "3.0";        
}
if (grade = A ) 
要检查它是否相等,您应该使用==来比较引用,或者使用equals来比较字符串

A不是变量,而是要比较的字符串,因此它应该是

在两个独立的if中进行这项工作是没有意义的。做一次:

if (avg >= 90.0 ) {
   grade = "A";
   gpa = "4.0";
} else if (avg >=80.0) {
   grade = "B";
   gpa = "3.5";
} else if (avg >=70.0){
...
...

问题是grade=旁边的A突出显示为红色,我不确定如何修复。同样的事情也发生在B上。您似乎试图检查字符串A,但缺少引号。此外,在if条件中有赋值,而不是比较。可能不是您想要做的。@user10455554当我添加引号时,它在红色中的整行grade=A下面加下划线。单个等号的可能副本是赋值运算符。如果您只想编译代码,则需要将其更改为双等于,如If grade==a。但如果您希望代码实际上是正确的,则需要使用equals方法比较字符串:If grade.equalsA查看编译时可能出现的重复问题,但事实并非如此,我之所以单独使用if-else语句,是因为我想让程序单独打印一行,告诉用户他们的成绩和平均成绩。我不确定它是否可以组合使用。最后你仍然可以有两张照片