¿Cómo puedo construir mi bucle for en esta calculadora de GPA? Nuevo en Java, y para nuestra clase, debemos solicitar la calificación del usuario y las horas de crédito 4 veces, luego calcular su promedio. Se nos indicó que usáramos declaraciones de cambio y bucles, pero no muchas otras instrucciones. Acabamos de aprender acerca de los bucles for, while y do. Esto es lo que tengo hasta ahora, no estoy seguro de qué hacer a continuación.
Así es como se supone que debe verse la salida.
public static void main(String[] args) { String grade = ""; int creditHour = 0; int pointsPerCourse = 0; double gpa = 0.0; Scanner scnr = new Scanner(System.in); System.out.println("\t\t\tpointsPerCourse Calculator"); System.out.println("This program will calculate pointsPerCourses based on course grades"); for (); { System.out.print("Enter grade: "); grade = scnr.nextLine(); System.out.print("Enter number of credits for grade: "); creditHour = Integer.parseInt(scnr.nextLine()); } switch (grade) { case "A": pointsPerCourse = 4 * creditHour; case "B": pointsPerCourse = 3 * creditHour; case "C": pointsPerCourse = 2 * creditHour; case "D": pointsPerCourse = 1 * creditHour; default: pointsPerCourse = 0 * creditHour; } gpa = (double) pointsPerCourse / creditHour; System.out.printf("The GPA is %.1f ", gpa); scnr.close(); }
Esto no es golang, no puedes usar un bucle for
como ese y quieres poner tu caja de interruptores dentro del bucle. Alguien sugirió un ciclo while
, pero como solo desea realizar un ciclo 4 veces, un ciclo for
adecuado lo hará por usted.
for(int i = 0, i < 4, i++){ System.out.print("Enter grade: "); grade = scnr.nextLine(); System.out.print("Enter number of credits for grade: "); creditHour = Integer.parseInt(scnr.nextLine()); switch (grade) { case "A": pointsPerCourse = 4 * creditHour; case "B": pointsPerCourse = 3 * creditHour; case "C": pointsPerCourse = 2 * creditHour; case "D": pointsPerCourse = 1 * creditHour; default: pointsPerCourse = 0 * creditHour; } }
Creo que está tratando de hacer esto: haga un bucle 4 veces y agregue los puntos y las horas de crédito para promediar
import java.util.Scanner; class Prog { public static void main(String[] args) { String grade = ""; int creditHour = 0; int creditHourSum = 0; int pointsPerCourse = 0; double gpa = 0.0; Scanner scnr = new Scanner(System.in); System.out.println("\t\t\tpointsPerCourse Calculator"); System.out.println("This program will calculate pointsPerCourses based on course grades"); for (int i = 0; i < 4; i++) { System.out.print("Enter grade: "); grade = scnr.nextLine(); System.out.print("Enter number of credits for grade: "); creditHour = Integer.parseInt(scnr.nextLine()); creditHourSum += creditHour; switch (grade) { case "A": pointsPerCourse += 4 * creditHour; break; case "B": pointsPerCourse += 3 * creditHour; break; case "C": pointsPerCourse += 2 * creditHour; break; case "D": pointsPerCourse += 1 * creditHour; break; default: pointsPerCourse += 0 * creditHour; } System.out.println(pointsPerCourse); } gpa = (double) pointsPerCourse / creditHourSum; System.out.println(pointsPerCourse + ", " + creditHourSum); System.out.printf("The GPA is %.1f ", gpa); scnr.close(); } }
PRODUCCIÓN
This program will calculate pointsPerCourses based on course grades Enter grade: A Enter number of credits for grade: 4 16 Enter grade: E Enter number of credits for grade: 4 16 Enter grade: B Enter number of credits for grade: 4 28 Enter grade: C Enter number of credits for grade: 3 34 34, 15 The GPA is 2.3