Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

sobre a sintaxe!

o else está dando erro de sintaxe, porque?

public class testacondicional2 {
    public static void main(String[] args) {
        System.out.println("testando condicional");
        int idade = 20;
        int quantidadepessoas = 3;
        boolean acompanhado = quantidadepessoas >= 2;

        System.out.println("valor de acompanhado = " + acompanhado);

        if (idade >= 18 && acompanhado )
            System.out.println("seja bem vindo");
        } else {    
        System.out.println("infelismente voce não pode entrar");
    }
}
4 respostas

Olá Geovane!

Está dando erro de sintaxe pois falta uma chave de abertura no seu if e uma tag de fechamento na sua classe.

if (idade >= 18 && acompanhado ) <- ERRO AQUI

Para dar certo basta inserir inserir uma chave (responsável por abrir o bloco):

if (idade >= 18 && acompanhado ) {

Quando colocar essa chave verá que ele irá retornar um erro. Pois ainda falta mais uma chave. Lá em baixo, na ultima linha insira uma chave de fechamento.

Ao todo seu código ficará assim:

public class testacondicional2 {
    public static void main(String[] args) {
        System.out.println("testando condicional");
        int idade = 20;
        int quantidadepessoas = 3;
        boolean acompanhado = quantidadepessoas >= 2;

        System.out.println("valor de acompanhado = " + acompanhado);

        if (idade >= 18 && acompanhado) {
            System.out.println("seja bem vindo");
        } else {
            System.out.println("infelismente voce não pode entrar");
        }
    }
}

O erro ocorre porque as chaves estão desencontradas. Basta corrigi-las e o código funcionará.

public class testacondicional2 {
    public static void main(String[] args) {
        System.out.println("testando condicional");
        int idade = 20;
        int quantidadepessoas = 3;
        boolean acompanhado = quantidadepessoas >= 2;

        System.out.println("valor de acompanhado = " + acompanhado);

        if (idade >= 18 && acompanhado)
            System.out.println("seja bem vindo");
        else
            System.out.println("infelismente voce não pode entrar");
    }
}

No entanto, considere escrever o código desta maneira:

class Porteiro {
    @FunctionalInterface
    interface Mensagem {
        boolean verificar(int idade, int numeroPessoas);

        String SUCESSO = "seja bem vindo";
        String FALHA   = "infelizmente você não pode entrar";
    }

    static Porteiro singleton = new Porteiro();

    void mensagemCondicional(Mensagem msg) {
        System.out.println(this + "\n" + (msg.verificar(idade, numeroPessoas) ? Mensagem.SUCESSO : Mensagem.FALHA));
    }

    @Override
    public String toString() {
        return "idade: " + idade + ", numeroPessoas: " + numeroPessoas;
    }

    public Porteiro idade(int idade) {
        this.idade = idade;
        return this;
    }

    public Porteiro numeroPessoas(int numeroPessoas) {
        this.numeroPessoas = numeroPessoas;
        return this;
    }

    private Porteiro() {
    }

    private int idade         = 18;
    private int numeroPessoas = 1;
}

public class Teste {
    public static void main(String[] args) {
        Random gerador = new Random();

        IntStream.range(0, 10)
                 .forEach(v -> Porteiro.singleton.idade(Math.abs(gerador.nextInt()) % 75)
                                                 .numeroPessoas(Math.abs(gerador.nextInt()) % 5 + 1)
                                                 .mensagemCondicional((a, b) -> a >= 18 && b >= 2));
    }
}

obrigado resolveu!

Olá Geovane!

Poderia fechar o tópico por favor? Isso ajuda os outros alunos com a mesma dúvida a encontrar uma resposta mais facilmente.

Obrigado, bons estudos!