Java 在我的GPA计算器中需要输入两次
几周前,我刚刚开始编写代码,高中计算机科学课的一个项目要求我制作一个GPA计算器。这不是目前最好的代码,也不是计算GPA的最佳技术,但它只是一个开始(如果有人能帮助清理并简化它,我将非常感谢您) 但是代码有问题。每次需要从控制台进行用户输入时,他们必须按enter键两次。我觉得解决方法很简单,但我一直无法理解为什么会发生这种情况Java 在我的GPA计算器中需要输入两次,java,calculator,Java,Calculator,几周前,我刚刚开始编写代码,高中计算机科学课的一个项目要求我制作一个GPA计算器。这不是目前最好的代码,也不是计算GPA的最佳技术,但它只是一个开始(如果有人能帮助清理并简化它,我将非常感谢您) 但是代码有问题。每次需要从控制台进行用户输入时,他们必须按enter键两次。我觉得解决方法很简单,但我一直无法理解为什么会发生这种情况 import java.util.Scanner; public class gpaCalc { public static double gpa; public
import java.util.Scanner;
public class gpaCalc {
public static double gpa;
public static String grade = "";
public static double gpaTotal = 0;
public static double points = 0;
public static double numberOfClasses;
public static double class1points;
public static double class2points;
public static double class3points;
public static double class4points;
public static double class5points;
public static double class6points;
public static double class7points;
public static double class8points;
static Scanner letterGrade = new Scanner(System.in);
static Scanner numClasses = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Welcome to Adrian's GPA calculator.");
System.out.println("This program will calculate your weighted and unweighted GPA for this school year.");
classesNumber();
}
public static void classesNumber() {
System.out.println("Please enter the number of classes that you are enrolled in for the school year.");
numberOfClasses = numClasses.nextDouble(); //input is stored in variable numberOfClasses
if(numberOfClasses >= 9 || numberOfClasses < 2)
System.out.println("Are you sure you go to ECHS?");
//limit the number of classes from 2-8
if (numberOfClasses <= 8 && numberOfClasses >= 2)
System.out.println("Please enter the letter grade you have recieved in class 1 (Uppercase letters i.e. A,B,C,D,F).");
else
classesNumber(); //error occurs and doesn't reset when a letter is put and not a number
class1();
}
public static void class1() {
grade = letterGrade.next(); //unweighted GPA finder
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class1 ();
}
class1points = points;
class2();
}
public static void class2() {
System.out.println("Please enter the letter grade you have recieved in class 2 (Uppercase letters i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class2();
}
class2points = points;
class3();
}
public static void class3() {
System.out.println("Please enter the letter grade you have recieved in class 3 (Uppercase letters i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class3();
}
class3points = points;
class4();
}
public static void class4() {
System.out.println("Please enter the letter grade you have recieved in class 4 (Uppercase letters i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class4();
}
class4points = points;
class5();
}
public static void class5() {
System.out.println("Please enter the letter grade you have recieved in class 5 (Uppercase letters i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class5();
}
class5points = points;
class6();
}
public static void class6() {
System.out.println("Please enter the letter grade you have recieved in class 6 (Uppercase letters i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class6();
}
class6points = points;
class7();
}
public static void class7() {
System.out.println("Please enter the letter grade you have recieved in class 7 (Uppercase letters i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class7();
}
class7points = points;
class8();
}
public static void class8() {
System.out.println("Please enter the letter grade you have recieved in class 8 (Uppercase letter i.e. A,B,C,D,F).");
grade = letterGrade.next();
if (grade.equals("A"))
points = 4.0;
else if (grade.equals("B"))
points = 3.0;
else if (grade.equals("C"))
points = 2.0;
else if (grade.equals("D"))
points = 1.0;
else if (grade.equals("F"))
points = 0;
else {
System.out.println("Invalid entry. Please enter a valid entry.");
class8();
}
class8points = points;
calculator();
}
public static void calculator() {
gpaTotal = (class1points + class2points + class3points + class4points + class5points + class6points + class7points + class8points ) / numberOfClasses;
System.out.println("Your unwweighted GPA is: " + gpaTotal);
}
}
import java.util.Scanner;
公共类gpaCalc{
公共静态双gpa;
公共静态字符串级别=”;
公共静态双gpaTotal=0;
公共静态双点=0;
公共静态双类;
公共静态双点;
公共静态双类2分;
公共静态双类3分;
公共静态双类4分;
公共静态双类5分;
公共静态双类6分;
公共静态双类7分;
公共静态双类8分;
静态扫描仪letterGrade=新扫描仪(系统英寸);
静态扫描仪numClasses=新扫描仪(System.in);
公共静态void main(字符串[]args){
System.out.println(“欢迎使用Adrian的GPA计算器”);
println(“此程序将计算您本学年的加权和未加权平均成绩。”);
classesNumber();
}
公共静态void classesNumber(){
System.out.println(“请输入您在本学年注册的班级数量。”);
numberOfClasses=numclass.nextDouble();//输入存储在变量numberOfClasses中
如果(NumberOfClass>=9 | | NumberOfClass<2)
System.out.println(“您确定要去ECHS吗?”);
//将类的数量限制在2-8之间
如果(NumberOfClass=2)
System.out.println(“请输入您在第1类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
其他的
classesNumber();//当放置字母而不是数字时,会发生错误且不会重置
类别1();
}
公共静态无效类别1(){
grade=letterGrade.next();//未加权GPA查找器
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
否则,如果(等级等于(“D”))
分值=1.0;
否则,如果(等级等于(“F”))
分值=0;
否则{
System.out.println(“无效条目。请输入有效条目”);
类别1();
}
分数=分数;
类别2();
}
公共静态无效类2(){
System.out.println(“请输入您在第2类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
grade=letterGrade.next();
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
否则,如果(等级等于(“D”))
分值=1.0;
否则,如果(等级等于(“F”))
分值=0;
否则{
System.out.println(“无效条目。请输入有效条目”);
类别2();
}
Class2分=分;
类别3();
}
公共静态无效类3(){
System.out.println(“请输入您在第3类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
grade=letterGrade.next();
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
否则,如果(等级等于(“D”))
分值=1.0;
否则,如果(等级等于(“F”))
分值=0;
否则{
System.out.println(“无效条目。请输入有效条目”);
类别3();
}
class3分=分;
类别4();
}
公共静态无效类4(){
System.out.println(“请输入您在第4类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
grade=letterGrade.next();
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
否则,如果(等级等于(“D”))
分值=1.0;
否则,如果(等级等于(“F”))
分值=0;
否则{
System.out.println(“无效条目。请输入有效条目”);
类别4();
}
类别4分=分数;
类别5();
}
公共静态无效类别5(){
System.out.println(“请输入您在第5类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
grade=letterGrade.next();
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
否则,如果(等级等于(“D”))
分值=1.0;
否则,如果(等级等于(“F”))
分值=0;
否则{
System.out.println(“无效条目。请输入有效条目”);
类别5();
}
类别5分=分;
类别6();
}
公共静态无效类6(){
System.out.println(“请输入您在第6类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
grade=letterGrade.next();
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
否则,如果(等级等于(“D”))
分值=1.0;
否则,如果(等级等于(“F”))
分值=0;
否则{
System.out.println(“无效条目。请输入有效条目”);
类别6();
}
类别6分=分;
类别7();
}
公共静态无效类7(){
System.out.println(“请输入您在第7类中收到的字母等级(大写字母,即A、B、C、D、F)。”;
grade=letterGrade.next();
如果(等级等于(“A”))
分值=4.0分;
否则,如果(等级等于(“B”))
分值=3.0分;
否则,如果(等级等于(“C”))
分值=2.0;
其他如有需要(职系)
for (int i = 0; i < mySubject.length; i++) {
your_code_here;
}
public static char grade;
public static double gpaTotal = 0;
public static int numberOfClasses;
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Welcome to Adrian's GPA calculator.");
System.out.println("This program will calculate your weighted and unweighted GPA for this school year.");
classesNumber();
}
public static void classesNumber() {
System.out.println("Please enter the number of classes that you are enrolled in for the school year.");
numberOfClasses = scan.nextInt(); //input is stored in variable numberOfClasses
if(numberOfClasses >= 9 || numberOfClasses < 2)
System.out.println("Are you sure you go to ECHS?");
getClassPoints();
}
public static void getClassPoints () {
//You dont need the numberOfClasses as parameter because its static.
for (int i = 0; i < numberOfClasses; i++){
while (true){
System.out.println("Please enter the letter grade you have recieved in class " + (i + 1) +"(Uppercase letter i.e. A,B,C,D,F).");
grade = scan.next().charAt(0); //unweighted GPA finder
grade = Character.toLowerCase(grade);
if (grade == 'a'){
gpaTotal += 4;
break;
}
else if (grade == 'b'){
gpaTotal += 3;
break;
}
else if (grade == 'c'){
gpaTotal += 2;
break;
}
else if (grade == 'd'){
gpaTotal += 1;
break;
}
else if (grade == 'f'){
break;
}
System.out.println("Invalid entry. Please enter a valid entry.");;
}
}
if (gpaTotal > 0){
System.out.println("Your unwweighted GPA is: " + (gpaTotal / numberOfClasses));
}
else {
System.out.println("Too many F grade!");
}
}
}