Do-while não está saindo quando aperto a letra especificada

5 respostas
S

String nome1 = JOptionPane.showInputDialog(“Coloque o nome do time 1:”);
String time1[] = new String[23];

String controle = null;
	do {
		for (int i = 0; i < 22; i++) {

			 
			controle = time1[i] = JOptionPane.showInputDialog("Coloque os jogadores do time1 ou digite 'z' para terminar: ");
			
		}
	} while (! controle.equals("z"));

5 Respostas

M

Você tem duas estruturas de repetições aninhadas, o do while e o for.
Analisando o seu código, o que vc está dizendo é, informe os 23 jogadores do time1 enquanto a variável controle for diferente de “z”.

A verificação do seu while só ocorre depois que ele percorre todas as 23 posições do seu array. Isso quer dizer que ele só irá verificar se o controle é z se após todos os seus index terem sido preenchidos.

M

Um exemplo de código que vc pode tentar…

TEC.ER

Por que voce negou ! ?
se quer que ele termine quando a letra digita for z ?

maxtuist

Pois enquanto a letra digitada não for a Z, ele continuará executando o laço de repetição.

TEC.ER

Antes do declare uma variavelboolean continua = true;

e fora do for coloque a condição:

String repeti= JOptionPane.showInputDialog( "Deseja coloca jogador ? SIM /NAO");
        if(repeti.equalsIgnoreCase("NAO")){
        	continua = false;
        }else{
        	continua = true;
        }
   
        }while(continua); //aqui entra no luga do :  while (! controle.equals("z"));
Criado 13 de abril de 2016
Ultima resposta 13 de abr. de 2016
Respostas 5
Participantes 4