Olá pessoal.
Minha dúvida é o seguinte:
Eu tenho um case dentro do switch, que quando eu entro nele pede a entrada de dados, só que quando vai entrar pra parte lógica, no caso um “if”, ele simplesmente passa pro próximo case que tem no switch.
O que será que pode estar acontecendo?
Assim que termina a lógica do case tem que colocar break;
Exemplo
switch(teste){
case 1:
System.out.println(“teste”);
break;
case 2:
System.out.println(“teste2”);
break;
switch(opcao){
case 1:
System.out.println("");
System.out.println("Seu saldo é: " + saldo);
opcaoDesejada();
case 2:
System.out.println("");
System.out.println("Digite o valor a ser depositado: ");
deposito = ler.nextDouble();
saldo += deposito;
System.out.println("");
System.out.println("Seu saldo novo é: " + saldo);
ex = "+ " + deposito;
exOperacoes.append(ex);
exOperacoes.append(System.getProperty("line.separator"));
opcaoDesejada();
case 3:
System.out.println("");
System.out.println("Digite o valor a ser sacado: ");
saque = ler.nextDouble();
saldo -= saque;
System.out.println("");
System.out.println("Seu saldo novo é: " + saldo);
ex = "- " + saque;
exOperacoes.append(ex);
exOperacoes.append(System.getProperty("line.separator"));
opcaoDesejada();
case 4:
System.out.println("Digite o Valor: ");
transf = ler.nextDouble();
System.out.println("Digite a Conta: ");
String userCONTA = ler.next();
if(userCONTA.equals(conta)){
saldo -= transf;
ex = "TRANSFERENCIA: - " + transf;
} else {
System.out.println("Algum dos dados digitados "
+ "estão incorretos ou o valor da transferencia"
+ "é maior que o saldo");
}
case 5:
System.out.println("Seu extrato é: ");
System.out.print(exOperacoes);
opcaoDesejada();
case 0:
inicio();
default:
System.out.println("Tecla Incorreta");
opcoes();
System.out.println("");
}
O que acontece, é que quando ele vai pra entrar no if do case 4, ele nao entra e vai pro proximo case. Eu tentei usar os breaks, tb deu na mesma
Você tem que colocar o break em todos os seus cases, se não ele irá automaticamente executar os swits abaixo da escolha.
Referente ah não entrar no IF possivelmente o seu objeto tem um valor string diferente por exemplo.
userConta = “Teste”
conta = “teste”
ao fazer a comparação ele identifica que não é igual, tenta fazer com equalsIgnoreCase.
E mais uma coisa como não tenho acesso ao código inteiro esse “conta” é um objeto ou uma variavel? Pois se for um objeto você deverá chamar o método get da variavel que você quer comparar da classe.
tem como me chamar no whats?
Deve ter colocado nos locais errados.
switch(opcao){
case 1:
System.out.println("");
System.out.println("Seu saldo é: " + saldo);
opcaoDesejada();
break;
case 2:
System.out.println("");
System.out.println("Digite o valor a ser depositado: ");
deposito = ler.nextDouble();
saldo += deposito;
System.out.println("");
System.out.println("Seu saldo novo é: " + saldo);
ex = "+ " + deposito;
exOperacoes.append(ex);
exOperacoes.append(System.getProperty("line.separator"));
opcaoDesejada();
break;
case 3:
System.out.println("");
System.out.println("Digite o valor a ser sacado: ");
saque = ler.nextDouble();
saldo -= saque;
System.out.println("");
System.out.println("Seu saldo novo é: " + saldo);
ex = "- " + saque;
exOperacoes.append(ex);
exOperacoes.append(System.getProperty("line.separator"));
opcaoDesejada();
break;
case 4:
System.out.println("Digite o Valor: ");
transf = ler.nextDouble();
System.out.println("Digite a Conta: ");
String userCONTA = ler.next();
if(userCONTA.equals(conta)){
saldo -= transf;
ex = "TRANSFERENCIA: - " + transf;
} else {
System.out.println("Algum dos dados digitados "
+ "estão incorretos ou o valor da transferencia"
+ "é maior que o saldo");
}
break;
case 5:
System.out.println("Seu extrato é: ");
System.out.print(exOperacoes);
opcaoDesejada();
break;
case 0:
inicio();
break;
default:
System.out.println("Tecla Incorreta");
opcoes();
System.out.println("");
break;
}