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
}
Related: How to use the Java scanner
– user28595
I tried to insert sc.nextLine(); but it didn’t work :/
– Fabiola Vieira
Fabiola, see Math’s response on the second link and do as he explained, it will solve the problem.
– user28595
Still doesn’t work.
– Fabiola Vieira