[quote=r063rio]Agora já está executando, mas percebi que tenho que digitar a opção 2 e 3 duas vezes e dá enter para que a alternativa apareca.
Grato![/quote]
O que acontece é que você chama o nextInt() de novo, aí ele procura o próximo na String que você digitou na linha de comando. Para o seu código funcionar você tem que dar um jeito de chamar o nextInt() apenas uma vez. Você pode, por exemplo atribuir a uma variável antes de testar no bloco de if’s. Mas acho melhor usar case mesmo como disse o philipe, ou aderir à campanha anti if.
[quote=philipe]Cara, tem que ser necessariamente usando IF ELSE??
Você pode usar também o CASE né:
[code]import java.util.Scanner;
public class Principal{
public static void main(String[] args) {
ContaCorr ClienteA = new ContaCorr();
ContaCorr ClienteB = new ContaCorr();
ClienteA.agencia = 222;
ClienteA.senha = "abc";
ClienteB.nome = "Adriana";
Scanner sc = new Scanner(System.in);
System.out.println("O que vc deseja fazer? \n1 - Sacar; \n2 - Despositar; \n3 - Mudar senha");
switch(sc.nextInt()){
case 1:{
System.out.println("Informe a quantia a sacar: ");
float saque = sc.nextFloat();
ClienteA.saque(saque);
}
case 2: {
System.out.println("Informe a quantia a depositar: ");
float deposito = sc.nextFloat();
ClienteA.deposito(deposito);
}
case 3: {
System.out.println("Informe a nova senha: ");
ClienteB.agencia = 123;
}
default: {
System.out.println("Opção incorreta: ");
break;
}
}
}
}[/code]
Uma outra alternativa [/quote]
Eu havai pensado no case, mas como se trata de uma condicional com apenas 3 alternativas, fiz com if. Por curiosidade, estou tentando com o case. Ele executou, porém, quando seleciono a opção 1, ele executa 1 e 2. E as opções 3 e 4 estão fazendo a mesma coisa(uma deveria mudar a senha e a outra, exibir o extrato). Segue o código modificado.
import java.util.*;
public class Principal {
public static void main(String[] args) {
ContaCorr ClienteA = new ContaCorr();
ContaCorr ClienteB = new ContaCorr();
ClienteA.agencia = 222;
ClienteA.senha = “abc”;
ClienteB.nome = “Adriana”;
Scanner sc = new Scanner(System.in);
System.out.println("O que vc deseja fazer? \n1 - Sacar; \n2 - Despositar; \n3 - Mudar senha"
+ "\n4 - Exibir extrato");
switch(sc.nextInt()) {
case 1: {
System.out.println("Informe a quantia a sacar: ");
float saque = sc.nextFloat();
ClienteA.saque(saque);
}
case 2: {
System.out.println("Informe a quantia a depositar: ");
float deposito = sc.nextFloat();
ClienteA.deposito(deposito);
}
case 3: {
System.out.println("Informe a nova senha: ");
ClienteB.senha = "123";
System.out.println("Senha modificada com sucesso");
}
case 4: {
System.out.println(ClienteA.extrato() + "\nAgencia " + ClienteA.agencia);
System.out.println(ClienteB.extrato() + "\nAgencia " + ClienteB.agencia);
}
// System.out.println("Opção incorreta: ");
}
}
[quote=r063rio]
Eu havai pensado no case, mas como se trata de uma condicional com apenas 3 alternativas, fiz com if. Por curiosidade, estou tentando com o case. Ele executou, porém, quando seleciono a opção 1, ele executa 1 e 2. E as opções 3 e 4 estão fazendo a mesma coisa(uma deveria mudar a senha e a outra, exibir o extrato). Segue o código modificado.
[code]import java.util.*;
public class Principal {
public static void main(String[] args) {
ContaCorr ClienteA = new ContaCorr();
ContaCorr ClienteB = new ContaCorr();
ClienteA.agencia = 222;
ClienteA.senha = “abc”;
ClienteB.nome = “Adriana”;
Scanner sc = new Scanner(System.in);
System.out.println("O que vc deseja fazer? \n1 - Sacar; \n2 - Despositar; \n3 - Mudar senha"
+ "\n4 - Exibir extrato");
switch(sc.nextInt()) {
case 1: {
System.out.println("Informe a quantia a sacar: ");
float saque = sc.nextFloat();
ClienteA.saque(saque);
}
case 2: {
System.out.println("Informe a quantia a depositar: ");
float deposito = sc.nextFloat();
ClienteA.deposito(deposito);
}
case 3: {
System.out.println("Informe a nova senha: ");
ClienteB.senha = "123";
System.out.println("Senha modificada com sucesso");
}
case 4: {
System.out.println(ClienteA.extrato() + "\nAgencia " + ClienteA.agencia);
System.out.println(ClienteB.extrato() + "\nAgencia " + ClienteB.agencia);
}
// System.out.println("Opção incorreta: ");
}
}
}[/code][/quote]
Tem que colocar um break; no final de cada case.