[Resolvido] Condição do "do while" é inversa do while?[Resolvido]

3 respostas
A

Boa noite caros, comecei a fazer um exercício e partiu uma dúvida bem fácil pra vocês
essa: " A condição do ‘do while’ é inversa do ‘while’? "

Se caso sim

do { System.out.println("Entre com a chave(somente 'A' à 'Z'): "); chave = sc.nextLine(); for(int i=0; i<chave.length()-1;i++) { if(passwd.charAt(i)>=65 && passwd.charAt(i)<=90) { valida += passwd.charAt(i); } } System.out.println(valida); }while(passwd.length()!=valida.length());
O que está errado nesse trecho de código? Pois fiz ele para aceitar apenas letras de A à Z caso contrário ele irá repetir o código ( um mecanismo de validação ),
todavia, se coloco a condição como diferente ele não aceita nada e se mudo para igual ele aceita tudo…
Como proceder com esse questionamento?

Muito Obrigado!
Att, André Vieira

3 Respostas

InicianteJavaHenriqu

Em Java == é o operador de comparação e = é o operador de atribuição.

Altere a condição de seu if para ==

:thumbup:

A

InicianteJavaHenrique:
Em Java == é o operador de comparação e = é o operador de atribuição.

Altere a condição de seu if para ==

:thumbup:

Obrigado pela resposta Henrique! Eu acho que é aquilo mesmo, pois é intervalo em relação à tabela ascii…
para complementar vou postar a classe Main inteira…

Scanner sc = new Scanner(System.in);
		String passwd="";
		String chave="";
		String valida="";
		System.out.println("Entre com a senha: ");
		passwd= sc.nextLine();
		do
		{
			System.out.println("Entre com a chave(somente 'A' à 'Z'): ");
			chave = sc.nextLine();
			for(int i=0; i&lt;chave.length()-1;i++)
			{
				if(passwd.charAt(i)&gt;=65 && passwd.charAt(i)&lt;=90)
				{
					valida += passwd.charAt(i);
				}
			}
			System.out.println(valida);
		}while(passwd.length()!=valida.length());
A

Nossa Galera desculpe me, foi apenas um erro muito juvenil,
o código está aqui…

Scanner sc = new Scanner(System.in);
		String passwd="";
		String chave="";
		String valida="";
		System.out.println("Entre com a senha: ");
		passwd= sc.nextLine();
		do
		{
			System.out.println("Entre com a chave(somente 'A' à 'Z'): ");
			chave = sc.nextLine();
			for(int i=0; i<chave.length()-1;i++)
			{
				if(chave.charAt(i)>=65 && chave.charAt(i)<=90)
				{
					valida += passwd.charAt(i);
				}
			}
			System.out.println(valida);
		}while(passwd.length()!=valida.length());

Grato! Att, André Vieira

Criado 13 de maio de 2012
Ultima resposta 13 de mai. de 2012
Respostas 3
Participantes 2