[RESOLVIDO]Pequena dúvida na hora da execução

Olá pessoal, estou com um pequeno problema aqui. Acho que aqui é o local ideal pra postar minha dúvida já que comecei a estudar Java a pouco tempo.

Bom, olhando na apostila do curso, resolvi fazer um dos exercícios. Nele pedia pra fazer uma aplicação para RH que quando determinados dados fossem inseridos, a aplicação retornaria se o novo funcionário estaria aprovado ou não.

Eu montei todo o código, e na hora da execução, o primeiro if (para funcionário masculino e feminino) funcionam, os demais não apresentam retorno da condição imposta. Se alguém puder me dizer onde estou errando, ou o que está faltando, eu agradeço.

Segue abaixo o código:

[code]import java.util.Scanner;

public class ExercicioRH {

public static void main(String[] args) {
	

	Scanner sc = new Scanner(System.in);
	
	System.out.println("Digite o nome do funcionário:");
	String nome = sc.nextLine();
	
	System.out.println("Digite sexo (M para masculino / F para feminino):");
	String sexo = sc.next();
	
	System.out.println("Portador de necessidades especiais (S sim / N não):");
	String deficiente = sc.next();
	
	System.out.println("Digite a idade:");
	int idade = sc.nextInt();
	
	
	//Funcionários do sexo masculino
	if ((sexo.equals("M")) && (deficiente.equals("S")) && (idade >= 18 && idade <= 45)){
		
		System.out.println("O funcionário: " + nome +  " está aprovado");
	}			
	
	if ((sexo.equals("M")) && (deficiente.equals("S")) && (idade < 18 && idade > 45)){
			
		System.out.println("O funcionário: " + nome + " está reprovado");
	}
			
	
	if ((sexo.equals("M")) && (deficiente.equals("N")) && (idade >= 18 && idade <= 24)){
				
		System.out.println("O funcionário: " + nome + " está aprovado");
				
	}
								
	if ((sexo.equals("M")) && (deficiente.equals("N")) && (idade < 18 && idade > 24)){
					
		System.out.println("O funcionário: " + nome + " está reprovado");
					
	}
			
	
	//Funcionários do sexo feminino			
	if ((sexo.equals("F")) && (deficiente.equals("S")) && (idade >= 20 && idade <= 50)){
					
		System.out.println("O funcionário: " + nome + " está aprovado");
		
	}	
	
	if ((sexo.equals("F")) && (deficiente.equals("S")) && (idade < 20 && idade > 50)){
		
		System.out.println("O funcionário: " + nome + " está reprovado");
		
	}
	
	if ((sexo.equals("F")) && (deficiente.equals("N")) && (idade >= 18 && idade <= 28)){
		
		System.out.println("O funcionário: " + nome +  "está aprovado");
		
	}
	
	if ((sexo.equals("M")) && (deficiente.equals("N")) && (idade < 18 && idade > 28)){
		
		System.out.println("O funcionário: " + nome + " está reprovado");
		
	}

		
}
	
}[/code]

As condições são:

-Homens deficientes com idades entre 18 e 45 estão aprovados

-Mulheres deficientes com idades entre 20 e 50 estão aprovados

-Homens não deficientes com idades entre 18 e 24 estão aprovados

-Mulheres não deficientes com idades entre 18 e 28 estão aprovados

-Os demais estão reprovados

Agradeço a ajuda.

Tópico editado com códigos na tag code. Malz ae galera, não sabia, meu primeiro tópico.

Boa noite…

Este segundo seu IF nunca ira entrar…
Pense bem…

A idade tem que ser menor que 18 e o mesmo valor maior que 45? idade < 18 && idade > 45
Não deveria ser um “OR” -> idade < 18 || idade > 45

if ((sexo.equals("M")) && (deficiente.equals("S")) && (idade < 18 && idade > 45)){

         System.out.println("O funcionário: " + nome + " está reprovado");
} 

Abraco

Olá Jean, por favor, poste seu código entre as tags code /code para entendermos melhor, obrigado.

[quote=alxdre.pestana]Boa noite…

Este segundo seu IF nunca ira entrar…
Pense bem…

A idade tem que ser menor que 18 e o mesmo valor maior que 45? idade < 18 && idade > 45
Não deveria ser um “OR” -> idade < 18 || idade > 45

if ((sexo.equals("M")) && (deficiente.equals("S")) && (idade < 18 && idade > 45)){

         System.out.println("O funcionário: " + nome + " está reprovado");
} 

Abraco[/quote]

Valeu ae alxdre.pestana, muito obrigado cara. Eu tinha esquecido desse detalhe. Era esse mesmo o problema. Obrigado mesmo.