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

Desafio

Olá, pessoal!

Estou com uma dúvida: fiz o código utilizando o "for" em vez de "while". Tem algum problema?

import java.util.Scanner;

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

    String nome = "Barbara";
    String conta = "Corrente";
    double saldoInicial = 2500.00;
    double saldoAtualizado = 0;



    System.out.println("********************************");
    System.out.println("Nome: " + nome);
    System.out.println("Tipo conta: " + conta);
    System.out.println("Saldo inicial: " + saldoInicial);
    System.out.println("**********************************\n");



    for(int i = 1; i <= 4; i++){
        System.out.println("Operações \n");
        System.out.println("1- Consultar saldos ");
        System.out.println("2- Receber valor ");
        System.out.println("3- Transferir valor ");
        System.out.println("4- Sair");
        System.out.println("Digite a opção desejada: ");
        int escolhido = leitor.nextInt();


        if(escolhido == 1){
            System.out.println("O saldo atual é R$ " + saldoInicial + "\n");

        }else if(escolhido == 2){
            System.out.println("Informe o valor a receber: ");
            double receber = leitor.nextDouble();
            saldoAtualizado = saldoInicial + receber;
            System.out.println("Saldo atualizado R$ " + saldoAtualizado + "\n");


        }else if(escolhido == 3){
            System.out.println("Informe o valor que deseja transferir: ");
            double transferir = leitor.nextDouble();

            if(transferir > saldoAtualizado){
                System.out.println("Não há saldo suficiente para fazer essa transferência\n");

            }else {

                saldoAtualizado = saldoAtualizado - transferir;
                System.out.println("Saldo atualizado " + saldoAtualizado);
            }

        }else if(escolhido == 4){
            System.exit(0);
            break;
        }else{
            System.out.println("Opção inválida \n");
        }
    }
2 respostas
solução!

Oi boa tarde, sou iniciante em Java, porem a logica do seu código com o FOR vai te permitir fazer um numero limitado de consultas.

Porque a cada consulta ou operação que você realizar no menu, a variável int I, vai receber +1.

Ou seja se seu for (int i = 1; i <= 4; i++). só irá conseguir fazer 4 operações. Porque na quarta operação o int i vai ser = 4 e ira sair do for e fechar o menu.

no Caso o While ele se repete enquanto uma condição for verdadeira e essa condição você pode mudar na opção 4.

Sugiro usar um while e switch e usar os if else para as condições de recebimento ou transferência. Pq caso queria optar por Receber e colocar um valor negativo o saldo é diminuído.

Resumidamente.

o FOR vai rodar até que int I seja igual ou maior que o numero que escolher (no caso o <=4 do seu for) ( isso limita o numero de operações que vc pode fazer )

o While vai rodar enquanto uma condição for verdadeira.

o Switch vai fazer você organizar melhor as opçoes do menu.

Espero ter ajudado.

Boa noite, Emerson!

Sim, muito obrigada!!