gpt4 book ai didi

使用 ENUM 和 switch case 进行循环的 Java GPA 计算器

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:32 25 4
gpt4 key购买 nike

更新:现在我只需要修复循环和 switch 方法,让它从用户输入中获取字母并将其转换为数字来计算 gpa。

上一条消息:我正在尝试制作一个简单的 gpa 计算器,它已经在 ENUM 中包含了类(class),它只会询问用户字母等级并将其切换为数字,以便对其进行求和并除以代码中已提供的学分。无需输入代码上已有的学分。我尝试这样做,但不知道如何使用 switch 将字母更改为数字,我需要它来询问每门类(class)。它只询问我第一门类(class)的成绩,并且只接受数字答案。每个示例 2 个。谢谢。我现在拥有的:

import java.util.Scanner;

public class Degree {

enum Courses {MATH5070, MATH5080, STAT6020, STAT6050, DATA6200, DATA6300}

enum Grades {A, B, C}

public static void main(String[] args) {
Courses[] grade = Courses.values();

Scanner keyboard = new Scanner(System.in);
double points = 0, sum = 0;


for (int i = 0; i < grade.length; i++) {
System.out.print("Enter Grade (A,B, C) for " + grade[i]);
points = keyboard.nextDouble();
// add course grades and divide by credits 3 each course equals 18 in this case
sum = sum + points * 3 / 18 ;
System.out.println("Total GPA points = " + sum);

{
Grades Letters = null;
String answer = keyboard.next();
answer = answer.toUpperCase();
Letters = Grades.valueOf(answer);

switch (Letters) {
case A:
double A = 4;
break;
case B:
double B = 3;
break;
case C:
double C = 2;
break;
default:
System.out.println("Wrong");
break;
}

}
}
}
}

最佳答案

我花了一些时间尽可能干净地重写你的代码。我进行了各种更改,希望有助于简化您的代码。学习 Java 时,“搞乱”这门语言是有帮助的,当你有问题时,尝试运行它。例如,尝试修改我对代码的重写,以在 switch 语句中使用原始的 Grades 枚举而不是字符串。

下面您可以看到开关如何与字符串一起使用。枚举的工作方式与枚举类似。请参阅docs例如。

一些变化:

  1. 重命名了多个变量。
  2. 删除了两个枚举。
  3. 更改了 GPA 的计算方式。
  4. 为了清晰起见,添加了方法 getPointsForLetterGrade

代码:

import java.util.Scanner;

public class Degree {
private static final String[] courses = {"MATH5070", "MATH5080", "STAT6020", "STAT6050", "DATA6200", "DATA6300"};

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double sumOfPoints = 0;

for (String course : courses) {
System.out.println("Enter Grade (A, B, C) for " + course);
String letterGrade = input.nextLine().toUpperCase();
sumOfPoints += getPointsForLetterGrade(letterGrade);
}
double gpa = sumOfPoints / courses.length;
System.out.println("Total GPA points = " + gpa);
}

private static int getPointsForLetterGrade(String letterGrade) {
int pointsForLetter = 0;
switch (letterGrade) {
case "A":
pointsForLetter = 4;
break;
case "B":
pointsForLetter = 3;
break;
case "C":
pointsForLetter = 2;
break;
default:
System.out.println("Wrong");
break;
}
return pointsForLetter;
}
}

关于使用 ENUM 和 switch case 进行循环的 Java GPA 计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44853889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com