Pessoal:
Sou iniciante no Java, e tenho muita dificuldade com programação.
Estou resolvendo uma série de exercícios e em alguns momentos percebi que o switch case deixou o meu código mais “enxuto”. Meu problema é que não consegui alterar esse exercício para utilizar o switch case ao invés do If-else. Segue o enunciado e a minha resposta.
"Escrever um algoritmo que lê o número de identificação, as 3 notas obtidas por um aluno nas 3 verificações e a média dos exercícios que fazem parte da avaliação. Calcular a média de aproveitamento, usando a fórmula:
MA = (Nota1 + Nota2 x 2 + Nota3 x 3 + ME )/7
A atribuição de conceitos obedece a tabela abaixo:
| Média de Aproveitamento | Conceito |
|---|---|
| 9,0 | A |
| 7,5 e < 9,0 | B |
| 6,0 e < 7,5 | C |
| 4,0 e < 6,0 | D |
| < 4,0 | E |
O algoritmo deve escrever o número do aluno, suas notas, a média dos exercícios, a média de aproveitamento, o conceito correspondente e a mensagem: APROVADO se o conceito for A,B ou C e REPROVADO se o conceito for D ou E.
package lista2;
import javax.swing.JOptionPane;
public class Exercicio10 {
public static void main(String[] args) {
int codigoAluno;
double nota1, nota2, nota3, mediaExercicios, mediaAproveitamento;
String conceito;
codigoAluno = Integer.parseInt(JOptionPane.showInputDialog("Informe a matrícula do aluno: "));
nota1 = Double.parseDouble(JOptionPane.showInputDialog("Informa a primeira nota do aluno: "));
nota2 = Double.parseDouble(JOptionPane.showInputDialog("Informa a primeira nota do aluno: "));
nota3 = Double.parseDouble(JOptionPane.showInputDialog("Informa a primeira nota do aluno: "));
mediaExercicios = (nota1 + nota2 + nota3)/3;
mediaAproveitamento = (nota1 + (nota2*2) + (nota3*3) + mediaExercicios)/7;
if (mediaAproveitamento >= 9.0) {
conceito = "A";
JOptionPane.showMessageDialog(null, "O código do aluno é: " + codigoAluno + "\n"
+ "As notas do aluno foram: " + nota1 + " ," + nota2 + " ," + nota3 + "\n"
+ " A média de exercícios foi de: " + mediaExercicios + "\n"
+ "A média de Aproveitamento é: " + conceito + " \n"
+ "O Aluno está aprovado.");
}else if (mediaAproveitamento >= 7.5 && mediaAproveitamento < 9.0) {
conceito = "B";
JOptionPane.showMessageDialog(null, "O código do aluno é: " + codigoAluno + "\n"
+ "As notas do aluno foram: " + nota1 + " ," + nota2 + " ," + nota3 + "\n"
+ " A média de exercícios foi de: " + mediaExercicios + "\n"
+ "A média de Aproveitamento é: " + conceito + " \n"
+ "O Aluno está aprovado.");
}else if (mediaAproveitamento >= 6.0 && mediaAproveitamento < 7.5) {
conceito = "C";
JOptionPane.showMessageDialog(null, "O código do aluno é: " + codigoAluno + "\n"
+ "As notas do aluno foram: " + nota1 + " ," + nota2 + " ," + nota3 + "\n"
+ " A média de exercícios foi de: " + mediaExercicios + "\n"
+ "A média de Aproveitamento é: " + conceito + " \n"
+ "O Aluno está aprovado.");
}else if (mediaAproveitamento >= 4.0 && mediaAproveitamento < 6.0) {
conceito = "D";
JOptionPane.showMessageDialog(null, "O código do aluno é: " + codigoAluno + "\n"
+ "As notas do aluno foram: " + nota1 + " ," + nota2 + " ," + nota3 + "\n"
+ " A média de exercícios foi de: " + mediaExercicios + "\n"
+ "A média de Aproveitamento é: " + conceito + " \n"
+ "O Aluno está reprovado.");
}else if(mediaAproveitamento < 4.0 && mediaAproveitamento >=0 ) {
conceito = "E";
JOptionPane.showMessageDialog(null, "O código do aluno é: " + codigoAluno + "\n"
+ "As notas do aluno foram: " + nota1 + " ," + nota2 + " ," + nota3 + "\n"
+ " A média de exercícios foi de: " + mediaExercicios + "\n"
+ "A média de Aproveitamento é: " + conceito + " \n"
+ "O Aluno está reprovado.");
}
}
}
OBS: Minha resposta inicial foi uma tripa de IF-Elses maior, mas depois consegui diminuir e deixei dessa forma que postei.
Nesse caso é possível utilizar o switch-case? Pergunto pois nesse exercício não consegui =(
Obrigada.
OBS2: esses exercícios estou fazendo por conta própria…não é trabalho que eu tenho que entregar pra ninguém não!
!!