Nesses dois problemas,apenas o primeiro ocorre do programa não continuar caso o número seja menor ou maior que 2,já no segundo,ele não para,continua… gostaria de saber o que estou fazendo de errado,e esse programa deve ser feito com o while,então peço que não me mandem fazer com o for.
Primeiro:
Programa para saber quantos votos e o percentual de votos de cada chapa.
Obs:Onde está vermelho é onde o programa para e não continua caso o número seja menor que 1 ou maior que 2.É isso que quero que ocorra no segundo.
import javax.swing.JOptionPane;
public class Um {
public static void main(String[] args) {
int cont, voto, contA, contB;
cont = 0;
contA = 0;
contB = 0;
while (cont < 4) {
do {
voto = Integer
.parseInt(JOptionPane
.showInputDialog("1 para a chapa A e 2 para a chapa B"));
[color=red]if (voto < 1 || voto > 2) {
JOptionPane.showMessageDialog(null, "Não sabe ler?1ou2");[/color]
}
} while (voto < 1 || voto > 2);
if (voto == 1) {
contA++;
} else {
contB++;
}
cont++;
}
JOptionPane.showMessageDialog(null, "Votos da chapa A:" + contA
+ "\nVotos para a chapa B:" + contB + "\nPercentual da chapa A:"
+ ((double) contA / cont * 100.0) + "\nPercentual da chapa B:"
+ ((double) contB / cont * 100.0));
}
}
Segundo:
Obs: Não o terminei porque não consigo prosseguir com esta parte,talvez eu tenha colocado atributos a mais ou a menos,pois o problema pede o maior e o menor número e a subtração do maior pelo menor[color=blue](Devem ser números pares positivos)[/color].Onde está verde é onde quero que o programa não prossiga,e fique travando até que seja digitado um número correto,assim como no outro problema acima,acredito que não precise do else mas já tentei de diversas formas e não consigo.
import javax.swing.JOptionPane;
public class Dois {
public static void main(String[] args) {
int v, vmaior, vmenor, cont,contm, sub;
cont = 0;
vmaior = 0;
vmenor = 0;
contm=0;
while (cont < 2){
do {
v = Integer.parseInt(JOptionPane
.showInputDialog("Digite um número par positivo:"));
if (v > 0 && v % 2 == 0) {JOptionPane
.showMessageDialog(null,"Digite outro valor:");
}[color=green]else{JOptionPane
.showMessageDialog(null,"Inválido!");}[/color]
} while (v > 0 && v % 2 == 0);
if (v > vmaior) {
vmaior = v;
}if (v<vmaior){vmenor=v;}
else{JOptionPane
.showMessageDialog(null,"Inválidooo");}
cont++;
}JOptionPane.showMessageDialog(null,"maior:"+vmaior);
}}
mas consegui resolver: