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

Olá alguem pode descobrir por que esse codigo só copila até o menu de opções?

import java.util.Scanner;

public class Desafio {
    public static void main(String[] args) {
        String nome = "Marcio Freire";
        String tipoDaConta = "Corrente";
        double saldo = 125.99;

        System.out.println("##############################");
        System.out.println("\nNome do cliente: " + nome);
        System.out.println("Tipo da conta: " + tipoDaConta);
        System.out.println("Saldo atual: " + saldo);
        System.out.println("\n############################");

        // criando menu de opções
        int opcao = 0;
        String menu;
        menu = """
                **Escolhas as opções abaixo **
                1 - Consultar seu saldo
                2 - Transferir valor
                3 - Depositar valor
                4 - Sair
                """;
        Scanner leitura = new Scanner(System.in);

        while(opcao != 4) {
            System.out.println(menu);
            opcao = leitura.nextInt();
        }

        if (opcao == 1){
            System.out.println("o saldo atual é de " + saldo);
        } else if (opcao == 2) {
            System.out.println("Qual é o valor que deseja transferir?");
            double valor = leitura.nextDouble();
            if (valor > saldo) {
                System.out.println("não há saldo suficiente");
            } else {
                saldo -= valor;
                System.out.println("Saldo atual " + saldo);
            }

        } else if (opcao ==3) {
            System.out.println("valor recebido: ");
            double valor = leitura.nextDouble();
            saldo += valor;
            System.out.println("Novo saldo é de " + saldo);
            } else if (opcao != 4) {
            System.out.println("Opção inválida!");
        }
     }
  }
3 respostas
solução!

Olá,

a execução do código está presa dentro do while.

        while(opcao != 4) {
            System.out.println(menu);
            opcao = leitura.nextInt();
        }

experimente inserir a leitura antes do while e colocar outra condição de validação. Uma sugestão, seria utilizar o do...while, já que obrigatóriamente, o primeiro loop será executado.

Até +.

Muito obrigado Luciano, funcionou perfeitamente agora!

também cometi o mesmo erro, e após algumas horas de análise percebi que, o que eu estava codificando estava fora do While.... Sendo assim todas as regras que eu quero que aconteça mediante à uma condição deve estar dentro das {.....} do laço. Exemplo: while (opcao != 4) { "Enquanto essa opção não for igual a 4, quero que execute tudo que estiver aqui dentro." } Basicamente...