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

Calcular área quadrado e círculo.

Resolvi dessa maneira. Está correto?

import java.util.Scanner;
//Crie um menu que oferece duas opções ao usuário: "1. Calcular área do quadrado" e "2.
// Calcular área do círculo". Solicite a escolha do usuário e realize o cálculo da área com base na opção selecionada.

public class ExercicioMenu {
    public static void main(String[] args) {
        Scanner itemMenu = new Scanner(System.in);
        int chosenOption = 0;

        while (chosenOption != 3) {
            System.out.println("""
                    Escolha a opção desejada:     
                    Digite:
                    
                    1 - Calcular área do quadrado.
                    2 - Calcular área do círculo.
                    3 - Sair do Programa.
                    
                    """);
            chosenOption = itemMenu.nextInt();
            if (chosenOption == 1) {
                System.out.println("Por favor, digite a medida do LADO do quadrado");
                double squareSideSize = itemMenu.nextDouble();
                double squareArea = squareSideSize * squareSideSize;
                String message = "A área do QUADRADO informado é de ";
                System.out.println(message + squareArea + "\n");
            } else if (chosenOption == 2) {
                System.out.println("Por favor, digite a medida do RAIO do círculo");
                double circleRadius = itemMenu.nextDouble();
                double circleArea = circleRadius * circleRadius * Math.PI;
                String message = "A área do CIRCULO informado é de ";
                System.out.println(message + circleArea + "\n");
            } else if (chosenOption == 3) {
                System.out.println("""
                        O programa será encerrado.
                        Obrigado.
                        
                        """);
            }
        }
            itemMenu.close();
    }
}
2 respostas
solução!

Oii Rodrigo,

É muito bom poder acompanhar sua evolução nos estudos junto a Alura. Seu código está correto e atende bem a proposta da atividade.

Aproveitando o momento, gostaria de deixar uma dica de implementação do seu código. Podemos formatar o resultado da área do círculo de forma que ao ser apresentado para o usuário, exiba apenas duas casas decimais, para isso, podemos utilizar a classe DecimalFormat. Basta seguir os passos abaixo:

  • Importe DecimalFormat no início do seu arquivo

    import java.text.DecimalFormat;
    
  • Dentro da condição chosenOption == 2 (que é quando o usuário escolhe calcular a área do círculo), formate o valor circleArea para duas casas decimais antes de imprimir:

    else if (chosenOption == 2) {
        System.out.println("Por favor, digite a medida do RAIO do círculo");
        double circleRadius = itemMenu.nextDouble();
        double circleArea = circleRadius * circleRadius * Math.PI;
    
        // Formatação para duas casas decimais
        DecimalFormat df = new DecimalFormat("#.##");
        String formattedCircleArea = df.format(circleArea);
    
        String message = "A área do CÍRCULO informado é de ";
        System.out.println(message + formattedCircleArea + "\n");
    }
    

No código acima, DecimalFormat("#.##") define o formato para duas casas decimais. Se você precisar de um controle mais preciso sobre arredondamentos, pode considerar DecimalFormat("#.00") para garantir que sempre haja dois dígitos decimais exibidos.

Código completo com as mudanças aplicadas

import java.util.Scanner;
import java.text.DecimalFormat;

public class ExercicioMenu {
    public static void main(String[] args) {
        Scanner itemMenu = new Scanner(System.in);
        int chosenOption = 0;

        while (chosenOption != 3) {
            System.out.println("""
                    Escolha a opção desejada:     
                    Digite:
                    
                    1 - Calcular área do quadrado.
                    2 - Calcular área do círculo.
                    3 - Sair do Programa.
                    
                    """);
            chosenOption = itemMenu.nextInt();
            if (chosenOption == 1) {
                System.out.println("Por favor, digite a medida do LADO do quadrado");
                double squareSideSize = itemMenu.nextDouble();
                double squareArea = squareSideSize * squareSideSize;
                String message = "A área do QUADRADO informado é de ";
                System.out.println(message + squareArea + "\n");
            } else if (chosenOption == 2) {
                System.out.println("Por favor, digite a medida do RAIO do círculo");
                double circleRadius = itemMenu.nextDouble();
                double circleArea = circleRadius * circleRadius * Math.PI;
                
                // Formatação para duas casas decimais
                DecimalFormat df = new DecimalFormat("#.##");
                String formattedCircleArea = df.format(circleArea);
                
                String message = "A área do CÍRCULO informado é de ";
                System.out.println(message + formattedCircleArea + "\n");
            } else if (chosenOption == 3) {
                System.out.println("""
                        O programa será encerrado.
                        Obrigado.
                        
                        """);
            }
        }
        itemMenu.close();
    }
}

Caso queira aprofundar ainda mais no aprendizado sobre a classe DecimalFormat, recomendo a leitura do seguinte artigo: DecimalFormat, formatar números reais em Java.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

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

Olá Rafael. Muito obrigado. Dica de grande valia e melhoria anotada para estudos. Abraços.