Problema com laços

Galera, boa tarde!

Estou na guerra pra aprender a programar e preciso da ajuda de vocês para entender onde estou errando. O exercicio é o seguinte “Entrar com nomes enquanto forem diferentes de FIM e imprimir cada nome digitado.” o porem é que só posso usar IF’s e laços para poder resolver, pois ainda não cheguei na parte de array. Eu fiz o código abaixo, mas ele só apresenta o primeiro nome e finaliza, mesmo não digitando “fim”. Eu só consigo digitar o primeiro nome e ele já finaliza.

import javax.swing.JOptionPane;
public class Ex05 {
public static void main(String [] args) {
String nome, aux = “”;

	do {
		nome = JOptionPane.showInputDialog("Digite uma palavra");
		aux = aux + " " + nome;
	}while(!nome.equals("fim"));		
	JOptionPane.showMessageDialog(null, aux);
}

}

Olá amigo, fiz desta forma:

String nome, aux = “”;
boolean valida = false;

			do {
				nome = JOptionPane.showInputDialog("Digite uma palavra");
				
				if(nome.equalsIgnoreCase("fim")){  //Fim, fim, FIM
					valida = true;
				}else{
					aux = aux + " " + nome;
				}
				
			}while(!valida);
			
			JOptionPane.showMessageDialog(null, aux);
1 curtida

Seu código está funcionando normalmente, testei e funcionou aqui.

1 curtida

Você pode usar uma variável auxiliar e concatenar ela na principal e na condição validar somente a auxiliar. Ou verificar os tres últimos caracteres da variável e ver se bate com FIM. Mas o amigo informou que ta funfando.

1 curtida

Boa tarde galera,

Então, eu fiquei puto e fechei o eclipse ontem, mais tarde fui abrir e por curiosidade coloquei pra funcionar de novo e o codigo rodou, não faço ideia do que houve. Agradeço muito a ajuda de vocês, eu testei aqui o que me passaram e funcionou também. Valeu mesmo!!