Ir ao conteúdo

Posts recomendados

Postado
package Gradle;

import java.util.Scanner;

public class App {
   
    public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);
        int idade;
        String nome;
        char masculino = 'M';
        char feminino = 'F';
        char sexo;
        
        System.out.print("Digite seu nome: ");
        nome = leia.next();
        System.out.print("Digite seu sexo, M ou F: ");
        sexo = leia.next().charAt(0);
        System.out.print("Digite sua idade: ");
        idade = leia.nextInt();
        
        if (idade >= 18) {
            if (sexo == masculino){
                System.out.println("voce esta apto para servir"); /mas aqui no primeiro if vai normalmente
            }
           
        } else if (idade >=18){
            if (sexo == feminino) {
            System.out.println("voce não esta apto para servir"); /aqui tambem não
        
            } else if (sexo == masculino) {
                if (idade < 18) {
                    System.out.println("voce não esta apto para servir"); /Aqui não ta aparecendo na tela quando atende as condicoes
                }
            } 
        }
    }        
}

 

Postado

O seu encadeamento de ifs está errado. O else-if do primeiro nível nunca vai ser executado porque a condição já foi satisfeita no primeiro if.

 

No seu caso, você precisaria aproveitar a mesma condicional e fazer o aninhamento assim:

import java.util.Scanner;

public class App {

    public static void main(String[] args) {
        Scanner leia      = new Scanner(System.in);
        int     idade;
        String  nome;
        char    masculino = 'M';
        char    feminino  = 'F';
        char    sexo;

        System.out.print("Digite seu nome: ");
        nome = leia.next();

        System.out.print("Digite seu sexo, M ou F: ");
        sexo = leia.next().charAt(0);

        System.out.print("Digite sua idade: ");
        idade = leia.nextInt();
        
        if (idade >= 18) {
            if (sexo == masculino) {
                System.out.println("Você está apto para servir");
            } else if (sexo == feminino) {
                System.out.println("Você não está apto para servir");
            } else {
                System.out.println("Sexo inválido");
            }
        } else {
            System.out.println("Idade insuficiente");
        }
    }
}

 

  • Amei 1
Postado
2 horas atrás, JorgeGus disse:

Faltou também colocar masculino e feminino entre aspas e usar o método "equals" no lugar de "==".

 

Caracteres ficam entre aspas simples e são comparados com ==, nessa parte o código dele está certo.

 

Por outro lado, se estivesse usando String para representar o sexo, aí deveria estar entre aspas duplas e usando equals.

  • Curtir 2
Postado
3 horas atrás, AdrianoSiqueira disse:

 

Caracteres ficam entre aspas simples e são comparados com ==, nessa parte o código dele está certo.

 

Por outro lado, se estivesse usando String para representar o sexo, aí deveria estar entre aspas duplas e usando equals.

 

Tem razão, na verdade eu não percebi que masculino e feminino eram nomes de variáveis, achei que fossem Strings literais.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...