1
resposta

entendendo o codigo

Gostaria de saber pq no laço não é referente ao menu e sim as opção. Como o programa entende?

while(opcao != 4){
               System.out.println(menu);
               opcao = leitura.nextInt();
                if (opcao == 2){
                    System.out.println(saldo);
                    saldo = leitura.nextDouble();
                } 
               
           }
1 resposta

Olá, Ellyda! Tudo bem com você?

No código que você compartilhou, o laço while está sendo utilizado para manter o programa rodando enquanto a condição opcao != 4 for verdadeira. Ou seja, enquanto a opção escolhida pelo usuário não for 4, o programa continuará exibindo o menu e aguardando uma nova entrada de opção.

Agora, sobre o System.out.println(menu);, ele é responsável por exibir o menu para o usuário. A linha seguinte, opcao = leitura.nextInt();, é onde o programa lê a opção inserida pelo usuário.

O bloco if (opcao == 2){...} dentro do laço é executado se a opção escolhida for 2. Nesse caso, o programa exibe o saldo atual e depois lê um novo valor para o saldo.

Então, basicamente, o laço while está sendo usado para controlar o fluxo do programa, permitindo que o usuário interaja com o menu várias vezes até que decida sair (opção 4). E o bloco if dentro do laço é usado para executar ações específicas conforme a opção escolhida pelo usuário.

Aqui está um exemplo prático para ilustrar isso:

String menu = "1. Ver saldo\n2. Depositar\n3. Sacar\n4. Sair";
int opcao;
double saldo = 0.0;
Scanner leitura = new Scanner(System.in);

while (true) {
    System.out.println(menu);
    opcao = leitura.nextInt();

    if (opcao == 1) {
        System.out.println("Seu saldo é: " + saldo);
    } else if (opcao == 2) {
        System.out.println("Digite o valor a depositar:");
        double valor = leitura.nextDouble();
        saldo += valor;
    } else if (opcao == 3) {
        System.out.println("Digite o valor a sacar:");
        double valor = leitura.nextDouble();
        if (valor <= saldo) {
            saldo -= valor;
        } else {
            System.out.println("Saldo insuficiente!");
        }
    } else if (opcao == 4) {
        System.out.println("Saindo...");
        break;
    } else {
        System.out.println("Opção inválida!");
    }
}

Neste exemplo, o programa continuará rodando e exibindo o menu até que o usuário escolha a opção 4 (Sair). As opções 1, 2 e 3 realizam ações específicas (ver saldo, depositar, sacar), e qualquer outra opção informa ao usuário que a opção é inválida.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.