Buenas noches,
Esta es mi solución al ejercicio propuesto:
package com.camilodev.ejercicios.condicionales;
import java.util.Locale;
import java.util.Scanner;
public class AprobacionDeAsignatura {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);
// Variables
double sumaDeNotas = 0;
double media;
double cantidadDeNotas;
// Constantes
final double NOTA_APROBADO = 7.0;
final double NOTA_RECUPERACION = 5.0;
System.out.println("¿Cuantas notas desea agregar?");
cantidadDeNotas = input.nextDouble();
while (cantidadDeNotas <= 0) {
System.out.println("La cantidad debe ser mayor que cero. Intenta de nuevo:");
System.out.println("¿Cuantas notas desea agregar?");
cantidadDeNotas = input.nextDouble();
}
for (int i = 0; i < cantidadDeNotas; i++) {
double nota;
do {
System.out.println(String.format("Ingrese la nota número %d", (i+1)));
nota = input.nextDouble();
if (nota < 0 || nota > 10) {
System.out.println("La nota debe estar entre 0.0 y 10.0. Intenta de nuevo.");
}
} while (nota < 0 || nota > 10);
sumaDeNotas += nota;
}
media = sumaDeNotas / cantidadDeNotas;
if(media >= NOTA_APROBADO){
System.out.println(String.format("El estudiante tuvo un promedio de %.2f y fue aprobado.", media));
}else if(media >= NOTA_RECUPERACION && media <= 6.9){
System.out.println(String.format("El estudiante tuvo un promedio de %.2f y está en recuperación.", media));
}else{
System.out.println(String.format("El estudiante tuvo un promedio de %.2f y fue reprobado.", media));
}
}
}
Estoy abierto a cualquier sugerencia o mejora que puedan tener.