Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] por que meu programa acaba quando é escolhida a opção conta corrente?

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 */

package com.mycompany.contabancaria;
import java.util.Scanner;
/**
 *
 * @author sheil
 */
public class ContaBancaria {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        String nome = "";
        int tipoDeConta = 0;
        double saldo = 0;
        int operacao = 0;
        double valorRecebido = 0;
        double valorTransferido = 0;

        System.out.println("""
                           Olá seja bem vindo ao Banco TaxasAltas BeneficioBaixos!
                           
                           Digite seu nome para que possamos continuar.""");
        nome = leitura.nextLine();

        System.out.println("Olá " + nome + ", estamos muito contente em termos voce como cliente, digite o saldo que possui em conta.");
        saldo = leitura.nextDouble();

        while (tipoDeConta == 0) {
            System.out.println("""
                               Qual o tipo de conta que o(a) senhor(a) possui?
                               
                               1 - Conta corrente
                               2 - Conta poupança
                               """);
            tipoDeConta = leitura.nextInt();

            if (tipoDeConta == 1) {
                System.out.println("""
                                   ********************************************
                                                                             
                                    Nome:                   %s               
                                    Saldo:                  %.2f R$           
                                    Tipo de conta:          Conta corrente   
                                                                             
                                   ********************************************
                                   """.formatted(nome, saldo, tipoDeConta));
            } else if (tipoDeConta == 2) {
                System.out.println("""
                                   ********************************************
                                                                             
                                    Nome:                   %s               
                                    Saldo:                  %.2f R$            
                                    Tipo de conta:          Conta poupança   
                                                                             
                                   ********************************************
                                     """.formatted(nome, saldo, tipoDeConta));
                do {
                    System.out.println("""
                                       Operações
                                       
                                       1- Consultar saldo
                                       2- Receber valor
                                       3- Transferir valor
                                       4- Sair
                                       """);
                    operacao = leitura.nextInt();

                    switch (operacao) {
                        case 1:
                            System.out.println("O saldo que possui em conta é de %.2f".formatted(saldo));
                            break;
                        case 2:
                            System.out.println("Digite o valor a ser recebido");
                            valorRecebido = leitura.nextDouble();
                            saldo += valorRecebido;
                            System.out.println("Confirmamos o recebimento de %.2f R$, o novo saldo em sua conta é de: %.2f R$".formatted(valorRecebido, saldo));
                            break;
                        case 3:
                            System.out.println("Digite o valor a ser transferido");
                            valorTransferido = leitura.nextDouble();
                            saldo -= valorTransferido;
                            System.out.println("Confirmamos a transferencia de %.2f R$, o novo saldo em sua conta é de: %.2f R$".formatted(valorTransferido, saldo));
                            break;
                        case 4:
                            System.out.println("Agradeçemos a preferencia e tenha um Bom dia!");
                            break;
                        default:
                            System.out.println("Opção inválida. Por favor, escolha novamente.");
                            break;
                    }
                } while (operacao != 4);
            } else {
                System.out.println("Opção inválida. Por favor, escolha novamente.");
                tipoDeConta = 0;
            }
        }

        leitura.close();
    }
}
1 resposta
solução!

Oii, Eduardo. Beleza?

Quando você usa a opção de conta corrente (tipoDeConta == 1) , o programa imprime as informações da conta e não executa nenhuma outra ação. Isso porque as operações de: Consultar saldo, Receber valor e Transferir valor, você adicionou apenas para a opção de conta poupança (tipoDeConta == 2).

Uma possível solução é você remover o do-while de dentro do else if e adicioná-lo após o while do tipo de conta, algo parecido como isso:

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        String nome = "";
        int tipoDeConta = 0;
        double saldo = 0;
        int operacao = 0;
        double valorRecebido = 0;
        double valorTransferido = 0;

        System.out.println("""
                           Olá seja bem vindo ao Banco TaxasAltas BeneficioBaixos!
                           
                           Digite seu nome para que possamos continuar.""");
        nome = leitura.nextLine();

        System.out.println("Olá " + nome + ", estamos muito contente em termos voce como cliente, digite o saldo que possui em conta.");
        saldo = leitura.nextDouble();

        while (tipoDeConta == 0) {
            System.out.println("""
                               Qual o tipo de conta que o(a) senhor(a) possui?
                               
                               1 - Conta corrente
                               2 - Conta poupança
                               """);
            tipoDeConta = leitura.nextInt();

            if (tipoDeConta == 1) {
                System.out.println("""
                                   ********************************************
                                                                             
                                    Nome:                   %s               
                                    Saldo:                  %.2f R$           
                                    Tipo de conta:          Conta corrente   
                                                                             
                                   ********************************************
                                   """.formatted(nome, saldo, tipoDeConta));
            } else if (tipoDeConta == 2) {
                System.out.println("""
                                   ********************************************
                                                                             
                                    Nome:                   %s               
                                    Saldo:                  %.2f R$            
                                    Tipo de conta:          Conta poupança   
                                                                             
                                   ********************************************
                                     """.formatted(nome, saldo, tipoDeConta));
            } else {
                System.out.println("Opção inválida. Por favor, escolha novamente.");
                tipoDeConta = 0;
            }
        }

        do {
            System.out.println("""
                                       Operações
                                       
                                       1- Consultar saldo
                                       2- Receber valor
                                       3- Transferir valor
                                       4- Sair
                                       """);
            operacao = leitura.nextInt();

            switch (operacao) {
                case 1:
                    System.out.println("O saldo que possui em conta é de %.2f".formatted(saldo));
                    break;
                case 2:
                    System.out.println("Digite o valor a ser recebido");
                    valorRecebido = leitura.nextDouble();
                    saldo += valorRecebido;
                    System.out.println("Confirmamos o recebimento de %.2f R$, o novo saldo em sua conta é de: %.2f R$".formatted(valorRecebido, saldo));
                    break;
                case 3:
                    System.out.println("Digite o valor a ser transferido");
                    valorTransferido = leitura.nextDouble();
                    saldo -= valorTransferido;
                    System.out.println("Confirmamos a transferencia de %.2f R$, o novo saldo em sua conta é de: %.2f R$".formatted(valorTransferido, saldo));
                    break;
                case 4:
                    System.out.println("Agradeçemos a preferencia e tenha um Bom dia!");
                    break;
                default:
                    System.out.println("Opção inválida. Por favor, escolha novamente.");
                    break;
            }
        } while (operacao != 4);

        leitura.close();
    }

Bons estudos :)