Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
3
respostas

[Projeto] Desafio Final

import java.util.Scanner;

public class Main {
    // primeiro bou inicializar os dados do cliente de modo fixo. N será a pessa a inserir;








    public static void main(String[] args) {
        String nome = "Carol Biazin";
        String tipoConta = "Corrente";
        double saldo = 2500.0;

        System.out.println("*************************************");
        System.out.println("\n Dados iniciais do cliente:\n");
        System.out.println("Nome: " + nome);
        System.out.println("Tipo de conta: " + tipoConta);
        System.out.println("Saldo Inicial " + saldo);
        System.out.println("\n *************************************");

        double valor = 0;
        int opcao;
        do {
            System.out.println("Operações\n");
            System.out.println("1- Consultar saldos\n" +
                    "2- Receber valor\n" +
                    "3- Transferir valor\n" +
                    "4- Sair");
            System.out.println("\n Digite a opção desejada:");
            Scanner sc = new Scanner(System.in);
            opcao = sc.nextInt();

            if (opcao == 1) {
                System.out.println("\n Seu saldo é " + saldo);
            } else if (opcao == 2) {

                System.out.println("\n Informe o valor a receber:");
                valor = sc.nextDouble();
                saldo += valor;
                System.out.println("\n Seu saldo atualizado é: " + (saldo));
            } else if (opcao == 3) {
                System.out.println("\n Informe o valor que deseja transferir:");
                valor = sc.nextDouble();
                if (valor > saldo) {
                    System.out.println("Saldo insufuciente para transferência!");
                } else {
                    saldo -= valor;
                    System.out.println("\n Seu saldo atualizado é: " + (saldo));
                }
            } else if (opcao != 4){
                System.out.println("Opção inválida!");
            }

        } while (opcao != 4);


    }
}
3 respostas

Olá, Débora! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o Scanner para capturar entradas do usuário com Java, utilizou muito bem a estrutura de repetição do-while para controlar o fluxo das operações e ainda compreendeu a importância da validação de opções para garantir interatividade e consistência no programa.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Scanner: fechar o objeto após o uso para evitar vazamentos de recursos.
  • Estruturas de repetição: aplicar switch-case para tornar o código mais legível.
  • Organização: separar lógica em métodos auxiliares para facilitar manutenção e testes.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: Você acha que organizar o código em métodos separados ajuda mais na clareza para aprendizado ou na escalabilidade para projetos maiores e complexos?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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

Uma dúvida sobre isso: "...Organização: separar lógica em métodos auxiliares para facilitar manutenção e testes."
Poderia me explicar melhor? Ainda vou ler as documentações que indicou, mas desde já, gostaria de deixar essa pergunta.

Ótima pergunta, Débora!

Quando falamos em separar a lógica em métodos auxiliares, estamos nos referindo a uma prática de organização do código que traz clareza, facilita testes e manutenção. Vou detalhar com um exemplo simples:

O problema

Imagine que você tem um método grande que:

  1. Lê dados de um arquivo.
  2. Processa esses dados.
  3. Gera um relatório.

Se tudo isso estiver dentro de um único método, fica difícil entender, testar e modificar sem quebrar algo.

A solução

Você pode quebrar em métodos menores, cada um com uma responsabilidade clara:

  • lerArquivo()
  • processarDados()
  • gerarRelatorio()

O método principal apenas coordena a execução:

public void executar() {
    List<String> dados = lerArquivo();
    Resultado resultado = processarDados(dados);
    gerarRelatorio(resultado);
}

Benefícios

  • Legibilidade: cada método tem um nome que explica o que faz.
  • Testabilidade: você pode escrever testes unitários para cada parte isolada.
  • Reuso: se precisar processar dados em outro contexto, já tem um método pronto.
  • Manutenção: se houver um bug no processamento, você mexe só em processarDados() sem arriscar quebrar a leitura ou o relatório.

Em resumo: separar em métodos auxiliares é como dividir uma tarefa grande em etapas menores e mais fáceis de controlar.

Você quer que eu mostre aqui um exemplo mais prático em código (tipo cálculo de média de notas ou manipulação de strings) para você visualizar melhor?