首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图计算GPA

试图计算GPA
EN

Stack Overflow用户
提问于 2011-11-01 01:14:27
回答 6查看 4.9K关注 0票数 2

到目前为止,这是我的代码(已经更新):

代码语言:javascript
复制
import java.util.Scanner; 

public class gpa {

   public static void main(String[] args) {
      double gpa=0;
      double input = 0;
      String grade= "";
      int classes =0;
      double fail =0;
      do
      {
         System.out.print("Enter Grade (n to quit): "); 
         Scanner sc = new Scanner(System.in); 
          grade = sc.nextLine(); 
          grade = grade.toLowerCase(); 
          if (grade.equals("a"))
          {
             input = 4.0;
          }
          if (grade.equals("b"))
          {
             input = 3.0;
          }
          if (grade.equals("c"))
          {
             input = 2.0;
          }
          if (grade.equals("d"))
          {
             input = 1.0;
          }
          if (grade.equals("f"))
          {
             fail = 1;
          }

          gpa+=input;
          classes++;
      } while(grade!="n");
      System.out.print("GPA: " + gpa + "   "); 

      gpa/=classes;
      if (gpa>=2 && classes >=4 && fail !=1)
      {
         System.out.print("Eligible");    
      }
      else if(classes <4)
      {
         System.out.print("Ineligible. less than 4 classes"); 
      }
      else if (gpa < 2.0)
      {
         System.out.print("Ineligible. GPA is less than 2.0"); 
      }
      else if (gpa >=2.0 && fail == 1)
      {
         System.out.print("Ineligible. GPA is above 2.0, but has an F");
      }
      else if (gpa <2.0 && fail ==1)
      {
         System.out.print("Ineligible. GPA is below 2.0 and has F");
      }
   }

}

下面是我需要能够输出的内容:

  1. Eligible
  2. Ineligible,小于4 classes
  3. Ineligible,gpa低于2.0
  4. Ineligible,gpa 2.0以上,但F级(注: gpa >= 2.0)
  5. Ineligible,gpa低于2.0,F级

)

它一直在征求意见。我该怎么阻止这一切?我试着把分数转换成一个字符,但这对我来说是个可怕的结局。我想可能是编译器出错什么的。任何帮助都将不胜感激。虽然有帮助可以降低我的血压。

EN

回答 6

Stack Overflow用户

发布于 2011-11-01 01:17:28

您使用的是字符串(对象),而不是char,因此需要使用.equals方法。你需要的不是grade == "a",而是grade.equals("a")

票数 1
EN

Stack Overflow用户

发布于 2011-11-01 01:17:49

这会让很多新的Java程序员兴奋起来,这是一个非常常见的错误。您需要使用.equals方法,而不是==操作符。见Java String.equals versus ==

票数 1
EN

Stack Overflow用户

发布于 2011-11-01 01:22:00

除了中断的比较(测试两个字符串是否引用相同的对象,而不是它们的内容在逻辑上是相等的),您还不能将input设置为0 (级别为F ),因此,一个f与前一个级别相同。

当这个人最后输入n时,你仍然做数学来增加分数和增加分数。此外,你从来没有实际计算GPA (你只是加起来的分数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7961538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档