O código abaixo é bem simples, ele calcula médias: Recebe 3 notas, mostra o somatório, a média, que é a divisão por 3, e se esse valor for maior que 6 mostra aprovado, do contrário reprovado.
Ao invés de terminar o código assim que mostrar a condição de reprovado, queria que executasse novamente para receber as 3 notas e refazer o cálculo, até se encaixar na condição de aprovado, do contrário o código não termina. Desculpem se não expliquei direito.
package programa;
import javax.swing.JOptionPane;
public class DoWhile{
public static void main (String[] args){
String primeironumero = JOptionPane.showInputDialog(“Digite a primeira nota”);
String segundonumero = JOptionPane.showInputDialog(“Digite a segunda nota”);
String terceironumero = JOptionPane.showInputDialog(“Digite a terceira nota”);
int numero1= Integer.parseInt(primeironumero);
int numero2= Integer.parseInt(segundonumero);
int numero3= Integer.parseInt(terceironumero);
int soma = numero1+numero2+numero3;
int media = soma/3;
if(media<6){JOptionPane.showMessageDialog(
null,
"O total das notas é "+soma +
"\n A média é "+media +
"\n Nova chance ",
"Resultado",
JOptionPane.PLAIN_MESSAGE);
}
else{JOptionPane.showMessageDialog(
null,
"O total das notas é "+soma +
"\n A média é "+media +
"\n Aprovado ",
"Resultado",
JOptionPane.PLAIN_MESSAGE);
}
}
}
Ficarei grato pela ajuda.
Veja se ajuda…
boolean continuar = true;
while (continuar) {
// todo o código vai aqui...
String opcao = JOptionPane.showInputDialog("Deseja continuar? [true/false]");
continuar = Boolean.parseBoolean(opcao);
}
Não entendi direito…
Eu coloco todo o código dentro do while?
A String opcao que você fez, eu coloco dentro do if e else ou fora junto ao código?
Tudo o que estiver no main, vai dentro do while…
As duas ultimas linhas ficam fora do if… pouco antes de terminar o while…
Me baseei na sua ideia e consegui.
Não coloquei as duas últimas linhas porque não quero que seja opcional, se não tirou 6 vai repetir até tirar.
Coloquei um System.exit(0); na condição aprovado, então o código só vai terminar quando essa linha for interpretada.
Obrigado pela ajuda, o código ficou assim:
package programa;
import javax.swing.JOptionPane;
public class DoWhile{
public static void main (String[] args){
boolean continuar = true;
while(continuar){
String primeironumero = JOptionPane.showInputDialog("Digite a primeira nota");
String segundonumero = JOptionPane.showInputDialog("Digite a segunda nota");
String terceironumero = JOptionPane.showInputDialog("Digite a terceira nota");
int numero1= Integer.parseInt(primeironumero);
int numero2= Integer.parseInt(segundonumero);
int numero3= Integer.parseInt(terceironumero);
int soma = numero1+numero2+numero3;
int media = soma/3;
if (media<6)
{JOptionPane.showMessageDialog(
null,
"O total das notas é "+soma +
"\n A média é "+media +
"\n Nova chance ",
"Resultado",
JOptionPane.PLAIN_MESSAGE);
}
else
{JOptionPane.showMessageDialog(
null,
"O total das notas é "+soma +
"\n A média é "+media +
"\n Aprovado ",
"Resultado",
JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
}
}
}
1 curtida
System.exit(0); é muito “forte” para sua aplicação, creio que somente um break resolva…
JOptionPane.PLAIN_MESSAGE);
break;
A diferença é que o System.exit(0) força a saida do programa, enquanto que o break apenas sai do while…
Fiz a mudança. Ainda sou muito iniciante em Java, é minha primeira interação no fórum.
Mas está “ligeiro” já, continue assim…
Recomendo essa apostila, muito boa, nela fala sobre while, break, etc…
Muito obrigado, vou baixar o conteúdo.
1 curtida