1
resposta

Como eu poderia melhorar isso?

import java.util.Scanner;

public class TestaCondicional2 {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);

        System.out.println("---Testando condicionais---");

        int idade = 0;
        int quantidadePessoas = 0;
        boolean acompanhado;

        if (quantidadePessoas >= 2) {
            acompanhado = true;
        } else {
            acompanhado = false;
        }

        System.out.println("Qual sua idade?");

        idade = (int) Double.parseDouble(leitura.nextLine());
        if (idade >= 18)

            System.out.println("seja bem-vindo(a)!");

        if (idade < 18) {
            System.out.println("Voce esta acompanhado com quantas pessoas?");
            quantidadePessoas = (int) Double.parseDouble(leitura.nextLine());
            if (quantidadePessoas >= 2)
                System.out.println("Seja bem-vindo(a)!");
            else {
                System.out.println("Infelizmente voce nao pode entrar.");
            }
        }
        leitura.close();
    }
}
1 resposta

Oii Tiego, tudo bem?

Desculpa pela demora em obter retorno.

Primeiramente, parabéns pelo código, testei aqui e vi que está tudo funcionando bem! Quanto às melhorias que você comentou, tenho algumas sugestões:

  1. Vi que em duas vezes no código você fez (int) Double.parseDouble(leitura.nextLine());. Se isso tivesse de ser feito mais vezes, seria bastante trabalhoso, não é mesmo? Por isso, a classe Scanner tem um método chamado nextInt(), que nos ajuda a ler números inteiros diretamente do teclado, ao invés de trabalhar com várias conversões.
  2. No primeiro if, acho que seria legal já inicializar a variável acompanhado como false, e só mudar isso caso a quantidade seja maior ou igual a 2. Parece pouco, mas estamos poupando o computador de fazer uma verificação a mais.
  3. Já na segunda verificação, percebi que você faz um if(idade>=18), e depois um if(idade<18). Como são situações totalmente excludentes - ou você tem menos de 18 anos, ou tem mais que isso - acho mais interessante usar um else, pelo mesmo motivo que mencionei antes.

Com isso, seu código ficaria com as seguintes modificações:

import java.util.Scanner;

public class TestaCondicional2 {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);

        System.out.println("---Testando condicionais---");

        int idade = 0;
        int quantidadePessoas = 0;
        boolean acompanhado = false;

        if (quantidadePessoas >= 2) {
            acompanhado = true;
        }

        System.out.println("Qual sua idade?");

        idade = leitura.nextInt();
        if (idade >= 18) {
            System.out.println("seja bem-vindo(a)!");
        } else {
            System.out.println("Voce esta acompanhado com quantas pessoas?");
            quantidadePessoas = leitura.nextInt();
            if (quantidadePessoas >= 2)
                System.out.println("Seja bem-vindo(a)!");
            else {
                System.out.println("Infelizmente voce nao pode entrar.");
            }
        }
        leitura.close();
    }
}

Espero ter ajudado, abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!