JAVA Application jumps commands

Asked

Viewed 74 times

0

When I choose case 1, it works ok. But if you choose this option again, the console shows the menu, as if the option did not work.

Is there any error visible in this code?

{
import java.util.Scanner;

public class Banking {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        ContaBancaria[] conta = new ContaBancaria[10];

        for (int i=0; i<10; i++){
            conta[i] = new ContaBancaria();
        }

        System.out.println("Bem vindo!");
        Scanner sc = new Scanner(System.in);
        int op1 = -1;

        while (op1 != 3){
            System.out.println("Escolha a operacao desejada: \n" + " 1 - Criar nova conta\n"
                    + " 2 - Acessar minha conta\n" + " 3 - Cancelar operacao");
            op1 = sc.nextInt();

            switch (op1){
            case 1:
                for (int i=0; i<10; i++){
                    if (conta[i].cliente == ""){
                        System.out.println("Nome do cliente: ");
                        sc.nextLine();
                        conta[i].cliente = sc.nextLine();
                        conta[i].id = i+1;
                        System.out.println("Dados da sua conta: ");
                        System.out.println("Cliente: "+conta[i].getCliente());
                        System.out.println("Numero de identificacao da conta: "+conta[i].getId());
                        System.out.println("Saldo: R$"+conta[i].getSaldoInicial());
                    }
                    break;
                }
                break;
            case 2:
                System.out.println("Digite o numero de identificacao da conta: ");
                int nid = sc.nextInt();
                if(nid <= 0 || nid > 10){
                    System.out.println("Numero de conta invalido.\n");
                    break;
                }
                for (int i=0; i<10; i++){
                    if(conta[i].getId() == nid){
                        System.out.println("Bem vindo!\nConfirme os dados de sua conta: ");
                        System.out.println("Cliente: "+conta[i].getCliente());
                        System.out.println("Numero de identificacao da conta: "+conta[i].getId());
                        System.out.println("Saldo: R$"+conta[i].getSaldoInicial());
                    }

                    int op2 = -1;
                    while (op2 != 5) {
                        System.out.println("Entre com a operacao que desejada: \n" + " 1 - Sacar uma quantia \n"
                                + " 2 - Depositar uma quantia \n" + " 3 - Alterar saldo minimo \n" + " 4 - Obter saldo \n"
                                + " 5 - Cancelar operacao");
                        op2 = sc.nextInt();
                        switch (op2) {
                        case 1:
                            System.out.print("Entre com o valor para sacar: ");
                            float valorSaque = sc.nextFloat();
                            conta[i].Sacar(valorSaque);
                                break;
                        case 2:
                            System.out.print("Entre com o valor para depositar: ");
                            float valorDeposito = sc.nextFloat();
                            conta[i].Depositar(valorDeposito);
                            break;
                        case 3:
                            System.out.print("Entre com o valor para saldo minimo: ");
                            float valorSaldo = sc.nextFloat();
                            conta[i].AlterarSaldoMinimo(valorSaldo);
                            break;
                        case 4:
                            System.out.println("Saldo: " + conta[i].ConsultarSaldo());
                            break;
                        case 5:
                            System.out.println("Obrigado por usar nossos servicos.\nAte breve.");
                            System.exit(0);
                            break;
                        default:
                            System.out.println("OPERACAO INCORRETA");
                        } //fim switch
                    } //fim while
                } //fim for
                break;
            case 3:
                System.out.println("Obrigado por usar nossos servicos.\nAte breve!");
                System.exit(0);
                break;
            default:
                System.out.println("OPERACAO INCORRETA");
    } //fim switch
    } //fim while
        sc.close();
} //fim main
} //fim classe
}
  • 2
  • 1

    I tried to insert sc.nextLine(); but it didn’t work :/

  • Fabiola, see Math’s response on the second link and do as he explained, it will solve the problem.

  • Still doesn’t work.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.