Quando o usuário dá o OK termina a aplicação, não segue adiante, pois existem comandos que se seguem caso esta condição não seja atendida.
cassio
Pois é, mas nesse caso você tem que colocar o restante do seu código dentro do escopo da cláusula if
É ali que vc vai tratar o que fazer caso o usário vote em branco. Outra maneira seria usar uma variável booleana (verdadeiro/falso). Caso entre neste if, você faz variavel = false.
Depois, fora do if/else, você testa a variavel e faz o que precisar…
booleanflag=true;if(opcao.compareTo("")==0){//comparaoqueveiodoinputdialogcomumaStringvaziaJOptionPane.showMessageDialog(null,"Voto em branco!"); flag=false;}
else{
blablabla;}
if(!flag){
//façaaquioquefornecessário
}
peczenyj
acho que o
Integer.parseInt
retorna uma exception caso não consiga converter. pense nisso.
Mantu
Primeiro: Qual é a condição para o seu programa encerrar?
Segundo: Se por acaso vc vai querer totalizar os votos brancos, vc não vai conseguir, por que vc tá sempre zerando a variável que conta tais votos, isso sem mencionar que ela não está visível fora do seu " if (escolha == 0){...}".
Tente fazer algo assim:
publicclassTesteArviana{privatestaticStringcand1Name="Fulano da Silva",cand2Name="Beltrano dos Santos";privatestaticintcand1Num=7,cand2Num=5,cand1Total=0,cand2Total=0,votoBranco=0;publicstaticvoidmain(String[]args){booleanencerrar=false;while(!encerrar){Stringmsg=cand1Num+" - "+cand1Name+"\n"+cand2Num+" - "+cand2Name;JOptionPane.showMessageDialog(null,"Você deverá escolher o número do candidato");Stringopcao=JOptionPane.showInputDialog(null,msg);intescolha=0;try{escolha=Integer.parseInt(opcao);}catch(Exceptione){}if(escolha==cand1Num)cand1Total++;elseif(escolha==cand2Num)cand2Total++;else{JOptionPane.showMessageDialog(null,"Voto em branco!");votoBranco++;}intopt=JOptionPane.showConfirmDialog(null,"Encerrar?","Votação",JOptionPane.YES_NO_OPTION);encerrar=opt==JOptionPane.YES_OPTION;}System.out.println(cand1Name+": "+cand1Total);System.out.println(cand2Name+": "+cand2Total);System.out.println("Votos em Branco: "+votoBranco);}}
qq coisa, poste mais
A
arviana
Cassio,
Não sei se é porque meus IF podem está colocados no lugar errado, dá uma olhada.
for (int i=0 ; i<numEleitores ; i++){
//MensangeminformandoaoeleitorquaiscandidatosenúmerosrespectivamenteJOptionPane.showMessageDialog(null,"Você deverá escolher o número do candidato");Stringopcao=JOptionPane.showInputDialog(null,"Candidato 1:"+" "+cand1Name+" - "+"Número:"+" "+cand1Num+" "+"\n Candidato 2:"+" "+cand2Name+" - "+"Número:"+" "+cand2Num);intescolha=Integer.parseInt(opcao);if(opcao.compareTo(" ")==0){JOptionPane.showMessageDialog(null,"Voto em branco!");intvotoBranco=0;votoBranco=votoBranco+1;}//Testaseusuáriodigitounúmerodocandidatoinválidoif(escolha!=cand1Num&escolha!=cand2Num){JOptionPane.showMessageDialog(null,"Número inválido! Digite novamente");i--;}//Conformeaopçãodevotaçãoéarmazenadanasvariáveisdoscandidatosif(escolha==cand1Num){votoCand1=votoCand1+1;}else{votoCand2=votoCand2+1;}}