1
resposta

Desafio Final

Bom dia, eu fiz desse jeito, porem acredito que eu sinto que tenha como melhorar meu codigo!

import java.util.Scanner;

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

        String nome = "Filipe";
        String tipoDeConta = "Corrente";
        double saldo = 500;
        double valor =0;

        int opcaoDesejada = 1;

        System.out.println("*************************\n");
        System.out.println("Nome do Cliente: " + nome);
        System.out.println("Tipo de conta: " + tipoDeConta);
        System.out.println("Saldo atual: " + saldo);
        System.out.println("\n*************************");

        String menu = """
                ** Digite sua opção **
                1 - Consulta saldo bancario
                2 - Transferir valor
                3 - Receber valor
                4 - Finalizar
                """;

        while (opcaoDesejada != 4){
            System.out.println(menu);
            opcaoDesejada = leitura.nextInt();
            switch (opcaoDesejada){
                case 1:
                    System.out.println("Saldo da conta: " + saldo);
                    break;
                case 2:
                    System.out.println("Informe o valor que deseja transferir");
                    valor = leitura.nextDouble();
                    if(valor > saldo);
                    {
                        System.out.println("Não há saldo suficiente para fazer essa transferência.");
                    }
                    {
                        saldo = saldo - valor;
                        System.out.printf("Saldo atualizado R$ %.2f\n",saldo);
                    }
                    break;
                case 3:
                    System.out.println("Informe o valor que deseja receber:");
                    valor = leitura.nextDouble();
                    saldo = saldo + valor;
                    System.out.printf("Saldo atualizado R$ %.2f\n",saldo);
                    break;
                case 4:

                    break;
                default:
                    System.out.println("Opção errada entre 1 a 4");
            }
        }
    }
}
1 resposta

Olá, Filipe! Tudo bem?

Parabéns por ter concluído o desafio final! É sempre importante buscar melhorias no código, posso te dar algumas sugestões.

Uma delas é em relação à mensagem de erro na opção 2 (transferência). Note que há um ponto e vírgula após o if, o que faz com que o bloco seguinte sempre seja executado, independente da condição do if. Para corrigir isso, basta remover o ponto e vírgula.

Outra sugestão é utilizar o recurso de formatação de string para deixar o código mais legível e organizado. Por exemplo, na linha 15, você poderia utilizar o %s para inserir o nome e o tipo de conta na string.

Por fim, uma dica é utilizar nomes mais descritivos para as variáveis, para que fique mais fácil entender o que cada uma representa.

Segue abaixo o código com as sugestões mencionadas:

import java.util.Scanner;

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

        String nomeCliente = "Filipe";
        String tipoDeConta = "Corrente";
        double saldoAtual = 500;
        double valor = 0;

        int opcaoDesejada = 1;

        System.out.println("*************************\n");
        System.out.printf("Nome do Cliente: %s\n", nomeCliente);
        System.out.printf("Tipo de conta: %s\n", tipoDeConta);
        System.out.printf("Saldo atual: %.2f\n", saldoAtual);
        System.out.println("\n*************************");

        String menu = """
                ** Digite sua opção **
                1 - Consulta saldo bancario
                2 - Transferir valor
                3 - Receber valor
                4 - Finalizar
                """;

        while (opcaoDesejada != 4){
            System.out.println(menu);
            opcaoDesejada = leitura.nextInt();
            switch (opcaoDesejada){
                case 1:
                    System.out.printf("Saldo da conta: %.2f\n", saldoAtual);
                    break;
                case 2:
                    System.out.println("Informe o valor que deseja transferir:");
                    valor = leitura.nextDouble();
                    if(valor > saldoAtual){
                        System.out.println("Não há saldo suficiente para fazer essa transferência.");
                    } else {
                        saldoAtual -= valor;
                        System.out.printf("Saldo atualizado: R$ %.2f\n", saldoAtual);
                    }
                    break;
                case 3:
                    System.out.println("Informe o valor que deseja receber:");
                    valor = leitura.nextDouble();
                    saldoAtual += valor;
                    System.out.printf("Saldo atualizado: R$ %.2f\n", saldoAtual);
                    break;
                case 4:
                    break;
                default:
                    System.out.println("Opção errada entre 1 a 4");
            }
        }
        System.out.println("Programa finalizado.");
    }
}

Espero ter ajudado e bons estudos!