4
respostas

Dúvida no desafio - meu programa não roda

Não consigo saber o que está errado com o meu código... Recebo a mensagem "Process finished with exit code 0" e o programa não roda :/

import java.util.Scanner;

public class AtendimentoATM { static int operacao = 0; static double saldo = 0; static Scanner leia = new Scanner(System.in);

//menu
public static int exibirMenu() {
    System.out.println("""
                    Operações:
                                    
                    1 - Consultar saldo
                    2 - Fazer saque
                    3 - Fazer transferência
                    4 - Fazer depósito
                    5 - Sair
                                    
                    Digite a opção desejada:
                    """);
    int operacao = leia.nextInt();
    return operacao;
}
//continuar atendimento
public static void continuar() {
    System.out.println("Deseja fazer mais alguma operação? Digite 1 para Sim ou 2 para Não.");
    int continuarOperacao;
    continuarOperacao = leia.nextInt();
    if (continuarOperacao == 1) {
        exibirMenu();
    } else {
        System.out.println("Atendimento finalizado.");
        System.exit(0);
    }
}
public static void main(String[] args) {

    //variáveis
    String banco = "Nubank";
    String cliente = "Clarissa Rosas";
    String agência = "1619-5";
    String conta = "12.901-1";
    String tipoDeConta = "Corrente";
    String data = "17/08/2023";
    double valorSaque = 0;
    double valorTransferencia = 0;
    double valorDeposito = 0;


    //cabeçalho
    System.out.println("*************************************");
    System.out.println(" ");
    System.out.println("Banco: " + banco);
    System.out.println("Cliente: " + cliente);
    System.out.println("Agência: " + agência);
    System.out.println("Conta: " + conta);
    System.out.println("Tipo de conta: " + tipoDeConta);
    System.out.println("Data: " + data);
    System.out.println(" ");
    System.out.println("*************************************");
    System.out.println(" ");

    //operações
    while (operacao != 5) {
        operacao = exibirMenu();

        switch (operacao) {
            case 1:
                System.out.println("""
                        Consultar saldo.
                        Saldo:""" + saldo);
                continuar();
                break;

            case 2:
                System.out.println("""
                        Fazer saque.
                        Informe o valor do saque:""");
                valorSaque = leia.nextDouble();
                if (valorSaque <= saldo) {
                    saldo -= valorSaque;
                    System.out.println("Operação realizada com sucesso!");
                    System.out.println("Saldo atual: " + saldo);
                } else if (valorSaque > saldo) {
                    System.out.println("Não foi possível completar a operação pois o saldo é insuficiente.");
                }
                break;

            case 3:
                System.out.println("""
                        Fazer transferência.
                        Informe o valor a ser transferido:""");
                valorTransferencia = leia.nextDouble();
                if (valorTransferencia <= saldo) {
                    saldo -= valorTransferencia;
                    System.out.println("Operação realizada com sucesso!");
                    System.out.println("Saldo atual: " + saldo);
                } else if (valorTransferencia > saldo) {
                    System.out.println("Não foi possível completar a operação pois o saldo é insuficiente.");
                }
                break;

            case 4:
                System.out.println("""
                        Fazer depósito.
                        Informe o valor a ser depositado:""");
                valorDeposito = leia.nextDouble();
                saldo += valorDeposito;
                System.out.println("Operação realizada com sucesso!");
                System.out.println("Saldo atual: " + saldo);
                break;

            case 5:
                System.out.println("Atendimento finalizado.");
                break;

            default:
                System.out.println("Opção inválida. Tente novamente.");
                break;
        }
    }
    //continuar();
}

}

4 respostas

Oii, boa noite tudo bem? Seu estava escrita com alguns erros de programação, ajustei ele pra tu.

import java.util.Scanner;

class AtendimentoATM {
    static int operacao = 0;
    static double saldo = 0;
    static Scanner leia = new Scanner(System.in);

    public static int exibirMenu() {
        System.out.println("Operações: " +
                "1 - Consultar saldo " +
                "2 - Fazer saque " +
                "3 - Fazer transferência " +
                "4 - Fazer depósito " +
                "5 - Sair Digite a opção desejada: ");

        int operacao = leia.nextInt();
        return operacao;
    }

    public static void continuar() {
        System.out.println("Deseja fazer mais alguma operação? Digite 1 para Sim ou 2 para Não.");
        int continuarOperacao;
        continuarOperacao = leia.nextInt();
        if (continuarOperacao == 1) {
            exibirMenu();
        } else {
            System.out.println("Atendimento finalizado.");
            System.exit(0);
        }
    }
    public static void main(String[] args) {

        //variáveis
        String banco = "Nubank";
        String cliente = "Clarissa Rosas";
        String agência = "1619-5";
        String conta = "12.901-1";
        String tipoDeConta = "Corrente";
        String data = "17/08/2023";
        double valorSaque = 0;
        double valorTransferencia = 0;
        double valorDeposito = 0;


        //cabeçalho
        System.out.println("*************************************");
        System.out.println(" ");
        System.out.println("Banco: " + banco);
        System.out.println("Cliente: " + cliente);
        System.out.println("Agência: " + agência);
        System.out.println("Conta: " + conta);
        System.out.println("Tipo de conta: " + tipoDeConta);
        System.out.println("Data: " + data);
        System.out.println(" ");
        System.out.println("*************************************");
        System.out.println(" ");

        //operações
        while (operacao != 5) {
            operacao = exibirMenu();

            switch (operacao) {
                case 1:
                    System.out.println("Consultar saldo. Saldo:" + saldo);
                    continuar();
                    break;

                case 2:
                    System.out.println("Fazer saque. Informe o valor do saque:");
                    valorSaque = leia.nextDouble();
                    if (valorSaque <= saldo) {
                        saldo -= valorSaque;
                        System.out.println("Operação realizada com sucesso!");
                        System.out.println("Saldo atual: " + saldo);
                    } else if (valorSaque > saldo) {
                        System.out.println("Não foi possível completar a operação pois o saldo é insuficiente.");
                    }
                    break;

                case 3:
                    System.out.println("Fazer transferência. " +
                            "Informe o valor a ser transferido:");

                    valorTransferencia = leia.nextDouble();
                    if (valorTransferencia <= saldo) {
                        saldo -= valorTransferencia;
                        System.out.println("Operação realizada com sucesso!");
                        System.out.println("Saldo atual: " + saldo);
                    } else if (valorTransferencia > saldo) {
                        System.out.println("Não foi possível completar a operação pois o saldo é insuficiente.");
                    }
                    break;

                case 4:
                    System.out.println("Fazer depósito. Informe o valor a ser depositado:");
                    valorDeposito = leia.nextDouble();
                    saldo += valorDeposito;
                    System.out.println("Operação realizada com sucesso!");
                    System.out.println("Saldo atual: " + saldo);
                    break;

                case 5:
                    System.out.println("Atendimento finalizado.");
                    break;

                default:
                    System.out.println("Opção inválida. Tente novamente.");
                    break;
            }
        }
        //continuar();
    }
}

Obrigada, mas não resolve... Testei aqui...

O que vc encontrou errado? Se for só aquele começo :

public class AtendimentoATM { static int operacao = 0; static double saldo = 0; static Scanner leia = new Scanner(System.in);

na verdade não tá assim, dá bug na hora que eu colo o código no fórum e gruda tudo...

mesmo assim não resolveu? Eu testei aqui e rodou, que erro que está dando?

Consegui resolver... O código abaixo funciona. :)


public class AtendimentoATM {
    static int operacao = 0;
    static double saldo = 3245.83;
    static Scanner leia = new Scanner(System.in);


//menu
public static int exibirMenu() {
    System.out.println("""
                    Operações:

                    1 - Consultar saldo
                    2 - Fazer saque
                    3 - Fazer transferência
                    4 - Fazer depósito
                    5 - Sair

                    Digite a opção desejada:
                    """);
    int operacao = leia.nextInt();
    return operacao;
}
//continuar atendimento
public static void continuar() {
    System.out.println("\nDeseja fazer mais alguma operação? Digite 1 para Sim ou 2 para Não.");
    int continuarOperacao;
    continuarOperacao = leia.nextInt();
    if (continuarOperacao == 1) {
        exibirMenu();
    } else {
        System.out.println("Atendimento finalizado.");
        System.exit(0);
    }
}
public static void main(String[] args) {

    //variáveis
    String banco = "Nubank";
    String cliente = "Maria da Silva";
    String agência = "1514-3";
    String conta = "11.801-1";
    String tipoDeConta = "Corrente";
    String data = "18/08/2023";
    double valorSaque = 0;
    double valorTransferencia = 0;
    double valorDeposito = 0;


    //cabeçalho
    System.out.println("*************************************");
    System.out.println("\nBanco: " + banco);
    System.out.println("Cliente: " + cliente);
    System.out.println("Agência: " + agência);
    System.out.println("Conta: " + conta);
    System.out.println("Tipo de conta: " + tipoDeConta);
    System.out.println("Data: " + data);
    System.out.println("\n*************************************\n");

    //operações
    while (operacao != 5) {
        operacao = exibirMenu();

        switch (operacao) {
            case 1:
                System.out.println("""
                        Consultar saldo.
                        \nSaldo: R$ """ + saldo);
                continuar();
                break;

            case 2:
                System.out.println("""
                        Fazer saque.
                        \nInforme o valor do saque:""");
                valorSaque = leia.nextDouble();
                if (valorSaque <= saldo) {
                    saldo -= valorSaque;
                    System.out.println("\nOperação realizada com sucesso!");
                    System.out.println("\nSaldo atual: R$ " + saldo);
                } else if (valorSaque > saldo) {
                    System.out.println("\nNão foi possível completar a operação pois o saldo é insuficiente.");
                }
                continuar();
                break;

            case 3:
                System.out.println("""
                        Fazer transferência.
                        \nInforme o valor a ser transferido:""");
                valorTransferencia = leia.nextDouble();
                if (valorTransferencia <= saldo) {
                    saldo -= valorTransferencia;
                    System.out.println("\nOperação realizada com sucesso!");
                    System.out.println("\nSaldo atual: R$ " + saldo);
                } else if (valorTransferencia > saldo) {
                    System.out.println("\nNão foi possível completar a operação pois o saldo é insuficiente.");
                }
                continuar();
                break;

            case 4:
                System.out.println("""
                        Fazer depósito.
                        \nInforme o valor a ser depositado:""");
                valorDeposito = leia.nextDouble();
                saldo += valorDeposito;
                System.out.println("\nOperação realizada com sucesso!");
                System.out.println("\nSaldo atual: R$ " + saldo);
                continuar();
                break;

            case 5:
                System.out.println("\nAtendimento finalizado.");
                break;

            default:
                System.out.println("\nOpção inválida. Tente novamente.");
                break;
        }
    }
}
}