Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício Cálculo da Área

import java.util.Scanner;

public class CalculadoraDeArea { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int opcao = 0;

        while (true) {
        System.out.println("Escolha uma opção:");
        System.out.println("1. Calcular área do quadrado");
        System.out.println("2. Calcular área do círculo");
        System.out.print("Digite o número da opção: ");

        try {
            opcao = Integer.parseInt(sc.nextLine());

            if (opcao == 1 || opcao == 2) {
                break; 
            } else {
                System.out.println("Opção inválida! Por favor, escolha 1 ou 2.\n");
            }
        } catch (NumberFormatException e) {
            System.out.println("Entrada inválida! Digite apenas o número 1 ou 2.\n");
        }
    }

    switch (opcao) {
        case 1:
            System.out.print("Digite o comprimento do lado do quadrado: ");
            String inputQuadrado = sc.nextLine().replace(",", ".");

            try {
                double ladoQuadrado = Double.parseDouble(inputQuadrado);

                if (ladoQuadrado <= 0) {
                    System.out.println("Erro: O lado do quadrado deve ser um número positivo.");
                    break;
                }

                double areaQuadrado = ladoQuadrado * ladoQuadrado;
                System.out.printf("A área do quadrado é: %.1f\n", areaQuadrado);

            } catch (NumberFormatException e) {
                System.out.println("Erro: Entrada inválida. Digite apenas números positivos.");
            }
            break;

        case 2:
            System.out.print("Digite o raio do círculo: ");
            String inputCirculo = sc.nextLine().replace(",", ".");

            try {
                double raioCirculo = Double.parseDouble(inputCirculo);

                if (raioCirculo <= 0) {
                    System.out.println("Erro: O raio do círculo deve ser um número positivo.");
                    break;
                }

                double areaCirculo = Math.PI * raioCirculo * raioCirculo;
                System.out.printf("A área do círculo é: %.1f\n", areaCirculo);

            } catch (NumberFormatException e) {
                System.out.println("Erro: Entrada inválida. Digite apenas números positivos.");
            }
            break;
    }

    sc.close();
}

}

2 respostas

Oi, Sheila! Tudo bem?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código ficou bem organizado e gostei da forma como você tratou entradas inválidas. A estrutura do switch com validação antes de calcular a área está super clara!

Uma dica para aprimorar ainda mais seu código é usar o método String.format(), que te permite criar textos formatados com mais flexibilidade que o printf. Com ele, você pode montar uma string com valores numéricos já formatados (como casas decimais) e guardar esse texto em uma variável para usar onde quiser, seja no console, em logs, ou até numa interface gráfica.

Veja este exemplo:


double area = 12.5;
String mensagem = String.format("A área calculada é: %.2f", area);
System.out.println(mensagem);

No exemplo, %.2f significa que o número será formatado com duas casas decimais. A vantagem é que a variável mensagem agora contém o texto pronto, e você pode reaproveitá-lo em outras partes do código, o que é ótimo para manter tudo organizado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
solução!

Olá Rafaela! Muito obrigada! Eu estou gostando muito das dicas! Eu achei que o ''básico'' não pudesse ser modificado, mas há outros recursos como este. Penso que esses pequenos detalhes em softwares grandes fazem toda diferença! Estou gostando de aprender tudo.