Retorno de variável

7 respostas
A

Tenho o seguinte:

JOptionPane.showMessageDialog(null,Você deverá escolher o número do candidato);

String opcao = JOptionPane.showInputDialog(null,Candidato 1: + "  " + cand1Name + " - " + Número:

+ "  "+ cand1Num + "  " + “\n Candidato 2: + "  “+ cand2Name +” - " + Número:+ "  " + cand2Num );

int escolha = Integer.parseInt(opcao);
if (escolha == 0){
			JOptionPane.showMessageDialog(null,"Voto em branco!");
			int votoBranco = 0;
				votoBranco = votoBranco + 1;
		
		}

Está correto a forma de fazer o teste da variável escolha para saber se o usuário digitou em branco???

7 Respostas

Ticianne

vc ja testou? oq acontece qnd testa?

cassio

Não, assim não dá certo. escolha só será igual a zero caso o usuário realmente digite 0(zero) no input dialog…

Faz assim:

if(opcao.compareTo("") == 0) { //compara o que veio do input dialog com uma String vazia
    JOptionPane.showMessageDialog(null,"Voto em branco!"); 
}
else {
   blablabla;
}
A

Tentei colocar como vc disse:

if (opcao.compareTo(" ") == 0){

JOptionPane.showMessageDialog(null,“Voto em branco!);

int votoBranco = 0;

votoBranco = votoBranco + 1;

i;

}

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 :slight_smile:

É 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…

boolean flag = true;
if(opcao.compareTo("") == 0) { //compara o que veio do input dialog com uma String vazia
     JOptionPane.showMessageDialog(null,"Voto em branco!"); 
    flag = false;
 }
 else {
    blablabla;
 }

if(!flag) {
   //faça aqui o que for necessário
}

:slight_smile:

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:
public class TesteArviana{
	private static String
		cand1Name = "Fulano da Silva",
		cand2Name = "Beltrano dos Santos"
	;
	private static int
		cand1Num = 7,
		cand2Num = 5,
		
		cand1Total = 0,
		cand2Total = 0,
		votoBranco = 0
	;
	
	public static void main(String[] args) {
		boolean encerrar = false;
		while(!encerrar) {
			String msg = 
				cand1Num + " - " + cand1Name + "\n" + 
				cand2Num + " - " + cand2Name
			;
			JOptionPane.showMessageDialog(
				null,
				"Você deverá escolher o número do candidato"
			);
			String opcao = JOptionPane.showInputDialog(null, msg);
			int escolha = 0;
			try {
				escolha = Integer.parseInt(opcao);
			} catch (Exception e) {
			}

			if (escolha == cand1Num)
				cand1Total++;
			else 
				if(escolha == cand2Num)
					cand2Total++;
				else {
					JOptionPane.showMessageDialog(null,"Voto em branco!");
					votoBranco++;
				}
			
			int opt = 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

Cassio,

Não sei se é porque meus IF podem está colocados no lugar errado, dá uma olhada.

for (int i=0 ; i<numEleitores ; i++){

//Mensangem informando ao eleitor quais candidatos e números respectivamente
		JOptionPane.showMessageDialog(null,"Você deverá escolher o número do candidato");
		String opcao = JOptionPane.showInputDialog(null,"Candidato 1:" + "  " + cand1Name + " - " + "Número:"
				+ "  "+ cand1Num + "  " + "\n Candidato 2:" + "  "+ cand2Name +" - " + "Número:"+ "  " + cand2Num );
		int escolha = Integer.parseInt(opcao);
		
		if (opcao.compareTo(" ") == 0){ 
			JOptionPane.showMessageDialog(null,"Voto em branco!"); 
			int votoBranco = 0; 
			votoBranco = votoBranco + 1; 
			 
			} 

		
		//Testa se usuário digitou número do candidato inválido
		if ( escolha != cand1Num & escolha != cand2Num){
			JOptionPane.showMessageDialog(null,"Número inválido! Digite novamente");
			i--;
		}
		
		//Conforme a opção de votação é armazenada nas variáveis dos candidatos
		if (escolha == cand1Num) {
				votoCand1 = votoCand1 + 1;
		}
		 		else{
				votoCand2 = votoCand2 + 1;
			
		}
		
		}
Criado 30 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 7
Participantes 5