Ajuda com código java _RESOLVIDO

Boa noite amigos, estou precisando saber aonde estou errando no meu código, se alguém puder me ajudar ficaria grato.

[code]package Exercicios;

import javax.swing.JOptionPane;

public class Ex1 {

public static void main(String[] args) {

	String aux = "", sexo ;
	int idade , idadeMaior=0 , cont = 0  ;
	String olhos, cabelos; 
		
	
	do{		
	aux = JOptionPane.showInputDialog(null,"Informe sua idade");
	idade =Integer.parseInt(aux);
	sexo = JOptionPane.showInputDialog(null,"Informe o sexo utilizando M para Masculino ou F para Feminino");
	
	while (sexo != "m"  || sexo!= "f"){
		
	JOptionPane.showMessageDialog(null," Sexo Inválido","ERRO",JOptionPane.ERROR_MESSAGE);
	sexo = JOptionPane.showInputDialog(null,"Informe o sexo utilizando M para Masculino ou F para Feminino");
	}
		
	
	olhos = JOptionPane.showInputDialog(null,"Informe a cor dos seus olhos");
	cabelos = JOptionPane.showInputDialog(null,"Informe a cor dos seus cabelos");
			
	
	if (idadeMaior < idade){  //if para achar a maior idade,começando com zero e comparando com as idades de entrada
		
		idadeMaior = idade;
	}
	
	if (olhos=="azuis" && sexo=="m"){
		
		cont= cont+1;
		
	}
	
	
	}while(idade > 0);
	
	
	JOptionPane.showMessageDialog(null,"A MAIOR IDADE É :  " + idadeMaior + "\n"+ "A QUANTIDADE DE HOMENS COM OLHOS AZUIS É DE : " + cont ,"RESULTADO DA PESQUISA",JOptionPane.INFORMATION_MESSAGE);
		
}

}
[/code]

Amigo, especifique o que deseja e o que acontece por favor.

Aparentemente, existe o erro de comparação de Strings onde só comparamos com == no caso de variáveis do tipo char.

Para comparação de String use string1.equals(“string2”); que retorna true or false.

Oi tallys,

Como o amigo comentou, post a mensagem de erro.

Sua declaração de variáveis está confusa, inicie todas elas, sexo, olhos e cabelos… Para comparar String devemos utilizar o método equals e não ==, pesquise sobre isso… :wink:

[quote=phorind]Amigo, especifique o que deseja e o que acontece por favor.

Aparentemente, existe o erro de comparação de Strings onde só comparamos com == no caso de variáveis do tipo char.

Para comparação de String use string1.equals(“string2”); que retorna true or false.[/quote]

Amigo obrigado pela explicação, pois não lembrava que tinha que usar o equals em comparação de Strings, pois tem + ou - 1 ano que não trabalhava com java, mas a faculdade exigi né fazer o que. Mas a minha dúvida é como posso cria um laço de repetição que compare se as Strings são diferentes, e force o usuário a entrar com o conteúdo que eu quero?
desde já obrigado pela ajuda

[quote=tallys][quote=phorind]Amigo, especifique o que deseja e o que acontece por favor.

Aparentemente, existe o erro de comparação de Strings onde só comparamos com == no caso de variáveis do tipo char.

Para comparação de String use string1.equals(“string2”); que retorna true or false.[/quote]

Amigo obrigado pela explicação, pois não lembrava que tinha que usar o equals em comparação de Strings, pois tem + ou - 1 ano que não trabalhava com java, mas a faculdade exigi né fazer o que. Mas a minha dúvida é como posso cria um laço de repetição que compare se as Strings são diferentes, e force o usuário a entrar com o conteúdo que eu quero?
desde já obrigado pela ajuda [/quote]

Voce pode usar o laço como faz com qualquer outra variável, porem na hora de comparar usa o equals.

do{

}while(!string1.equals(string2));

acredito que seja isso que voce queira, vai fazer o bloco enquanto as strings forem diferentes.

Caso tenha duvida sobre comandos de repetição, procure tópicos relacionados.

Espero ter ajudado.

[quote=phorind][quote=tallys][quote=phorind]Amigo, especifique o que deseja e o que acontece por favor.

Aparentemente, existe o erro de comparação de Strings onde só comparamos com == no caso de variáveis do tipo char.

Para comparação de String use string1.equals(“string2”); que retorna true or false.[/quote]

Amigo obrigado pela explicação, pois não lembrava que tinha que usar o equals em comparação de Strings, pois tem + ou - 1 ano que não trabalhava com java, mas a faculdade exigi né fazer o que. Mas a minha dúvida é como posso cria um laço de repetição que compare se as Strings são diferentes, e force o usuário a entrar com o conteúdo que eu quero?
desde já obrigado pela ajuda [/quote]

Voce pode usar o laço como faz com qualquer outra variável, porem na hora de comparar usa o equals.

do{

}while(!string1.equals(string2));

acredito que seja isso que voce queira, vai fazer o bloco enquanto as strings forem diferentes.

Caso tenha duvida sobre comandos de repetição, procure tópicos relacionados.

Espero ter ajudado.[/quote]

ajudou muito obrigado

Coloque o nome do tópico como resolvido e qualquer dúvida, não hesite em perguntar.

Pessoa refiz o código com a colaboração dos amigos acima , mas os erros ainda continuam coloquei as comparações como haviam me dito mas não consigo fazer uma comparação composta , meus laços de repetição e os ifs compostos estão dando erro. Se alguem puder me ajudar


package exercicio;

import javax.swing.JOptionPane;

public class Exercicio {

       public static void main(String[] args) {
  
        String aux= "", sexo = ""  ;
	int idade = 0 , idadeMaior=0 , soma  = 0 , cont = 0,cont0 = 0, cont1 = 0, cont2 = 0 , somaIdade = 0;
	String olhos = "", cabelos = ""; 
        double mediaIdade = 0 , percM = 0 ;
			
		
	do{	
                    
		idade = InOut.leInt("Informe sua idade: ");
		
                sexo = InOut.leString("Informe o sexo Masculino ou Feminino:");
		
                while((!sexo.equals("masculino")) || (!sexo.equals("feminino"))){ // laço de repetição forçando ao usuário a entrar com o tipo de sexo masculino ou feminino;
                        
                   JOptionPane.showMessageDialog(null," Sexo Inválido","ERRO",JOptionPane.ERROR_MESSAGE);
                   sexo = InOut.leString("Informe o sexo");
                        
                }
                
                olhos = InOut.leString("Informe a cor dos seus olhos : Azul - Verde - Preto ou Castanho:"); 
		
                while((!olhos.equals("azul")) || (!olhos.equals("preto")) || (!olhos.equals("castanho")) || (!olhos.equals("verde"))){ // laço de repetição forçando ao usuário a entrar com o tipo de cor de olhos Azuis , Verdes , Pretos ou Castanhos
                        
                    JOptionPane.showMessageDialog(null," Cor de olho Inválido","ERRO",JOptionPane.ERROR_MESSAGE);
                    olhos = InOut.leString("Informe a cor dos seus olhos Azul - Verde - Preto ou Castanho:");

                }
                             
                cabelos = InOut.leString("Informe a cor dos seus cabelos : Loiro - Castanho ou Preto:");
                
                 while((!cabelos.equals("loiro")) || (!olhos.equals("preto")) || (!olhos.equals("castanho"))){ // laço de repetição forçando ao usuário a entrar com o tipo de cor de cabelos Loiros , Pretos ou Castanhos
                        
                    JOptionPane.showMessageDialog(null," Cor de cabelo Inválido","ERRO",JOptionPane.ERROR_MESSAGE);
                    cabelos = InOut.leString("Informe a cor dos seus cabelos Loiro - Castanho ou Preto:");

                }
               
               if(sexo.equals("feminino")){ //if para comparar se os sexos de entrada são iguais a feminino
                   
                   cont0++; //Variavel que armazenara a quantidade de mulheres 
                   
               }
                   
               if(sexo.equals("feminino") && (idade>=18) || (idade<=35)){ //if para comparar se os sexos de entrada são iguais a feminino e se as idades estão entre maior ou igual a 18 e menor igual a 35  
                                             
                       cont ++; // Variavel onde sera armazenada a quantidade de pessoas que estão dentro das características solicitadas
                                           
                   }
                   
               if (idadeMaior < idade){  //if para achar a maior idade,começando com zero e comparando a variavel idadeMaior com as idades de entrada
			
				idadeMaior = idade; // Variavel idadeMaior armazenara sempre a idade maior
	           }
		
				if ((olhos.equals("azuis")) && (sexo.equals("masculino")) && (idade != 0)){ //if para comparar se olhos de entrada são iguais a azuis  e o sexo igual a masculino
			
				soma++;  // // Variavel onde sera armazenada a quantidade de pessoas que estão dentro das características solicitadas
               
			   }
		
               if (idade<18 && idade >64){ // if para comparar se as idades de entrada estão entre menor que 18 e maior que 64
                   
                  cont1++; // Variavel onde sera armazenada a quantidade de pessoas que estão dentro das características solicitadas
                   
               }
               
               if((sexo.equals("feminino"))&& (cabelos.equals("loiro"))){ //if para comparar se o sexos de entrada são iguai a feminino e o cabelo da cor loiro
                 
                   somaIdade = somaIdade + idade ; //Variavel onde sera armazenada todas as idades
                   cont2++; // Variavel onde sera armazenada a quantidade de pessoas que estão dentro das características solicitadas
                   
               }
                                            
               
	}while(idade > 0);
        
            mediaIdade = somaIdade/cont2; // Variavel receberá a média das idades das mulheres com cabelos loiros
            percM = (cont*100)/cont0;        
		
		
		JOptionPane.showMessageDialog(null,"A MAIOR IDADE É:  " + idadeMaior +
                "\n"+"O PERCENTUAL DE MULHERES ENTRE 18 E 35 ANOS É:" + percM +"%"+
                "\n"+"A QUANTIDADE DE HOMENS COM OLHOS AZUIS É: " + soma+
                "\n"+"A QUANTIDADE DE PESSOAS COM IDADE MENOR QUE 18 E MAIOR QUE 64 É: " + cont1+
                "\n"+"A MÉDIA DE IDADE DAS MULHERS COM CABELOS LOIROS SÃO: " +mediaIdade,"RESULTADO DA PESQUISA",JOptionPane.INFORMATION_MESSAGE);
		
    }
}

Alias ja fiz esse mesmo código utilzando Char no lugar de String e fazendo a comparação (variavel == ‘char’), mas também da erro.

Olá tallys.

Poste aqui pra gente qual ou quais as mensagens de erro que aparecem qdo vc testa o código.

:wink: