Java - Scanner + switch

 
Vista:

Scanner + switch

Publicado por Hector (2 intervenciones) el 26/12/2016 00:58:46
Hola,
estoy haciendo un pequeño programa para clase y me he quedado atascado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import java.util.Scanner;
 
 
public class AplicacionCuentabancaria{
 
 
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
 
 
        CuentaBancaria CCC1 = new CuentaBancaria();
        System.out.println("Introduce el nombre del titular: ");
        CCC1.setNomCliente(sc.nextLine());
        System.out.println("Introduce el apellido del titular: ");
        CCC1.setApeCliente(sc.nextLine());
        System.out.println("Introduce el saldo actual de la cuenta: ");
        CCC1.setSaldoCuenta(sc.nextDouble());
        System.out.println("Tu titular es "+CCC1.getTitular());
        System.out.println("Tu saldo actual es "+CCC1.getSaldoCuenta()+"€");
 
        for (int j=0; j<655; j++){
        System.out.println("¿Que quieres hacer?\n1-Retirar/ingresar efectivo\n2-Cambiar nombre\n3-Cambiar apellido\n4-Salir");
        switch(sc.nextInt()){
            case (1):
                System.out.println("Introduce cantidad (si es retirada con signo negativo) ");
                CCC1.manejarDinero(sc.nextDouble());
                System.out.println("Tu nuevo saldo es "+CCC1.getSaldoCuenta());
                break;
            case (2):
                System.out.println("Introduce nuevo nombre");
                CCC1.cambioNombre(sc.nextLine());
                System.out.println("Tu nuevo titular es "+CCC1.getTitular());
                break;
            case (3):
                System.out.println("Introduce nuevo apellido");
                CCC1.setApeCliente(sc.nextLine());
                System.out.println("Tu nuevo titular es "+CCC1.getTitular());
                break;
            case (4):
                System.exit(0);
                break;
        }
        }
    }
}
 
public class CuentaBancaria {
    //Atributos de método
    private String numCuenta;
    private String nomCliente, apeCliente;
    double saldoCuenta;
    public Scanner sc;
    //Metodos
 
    //Constructor
    public CuentaBancaria(){
        nomCliente="";
        apeCliente="";
        saldoCuenta=0;
    }
    //Metodo para obtener el numero de cliente completo
    protected String getTitular(){
        String nombreCompleto = nomCliente + " " + apeCliente;
        return nombreCompleto;
    }
public double manejarDinero(double efectivo){
    saldoCuenta += efectivo;
    return saldoCuenta;
}
    public double getSaldoCuenta() {
        return saldoCuenta;
    }
 
    public void setSaldoCuenta(double saldoCuenta) {
        this.saldoCuenta = saldoCuenta;
    }
 
    public String getNomCliente() {
        return nomCliente;
    }
 
    public void setNomCliente(String nomCliente) {
        this.nomCliente = nomCliente;
    }
 
    public String getApeCliente() {
        return apeCliente;
    }
 
    public void setApeCliente(String apeCliente) {
        this.apeCliente = apeCliente;
    }
}

El problema lo tengo en el switch, si escojo la opcion "1", me solicita un ingreso, y ejecuta el metodo manejarDinero y cambia el saldo, pero si intento cambiar el nombre o el apellido al titular, no me solicita nada por teclado, es decir me aparece "Introduce nuevo nombre" y luego directamente "Tu nuevo titular es" y el atributo vacío (supongo que porque no me llega a pedir nada por teclado).
Alguna idea?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Carlos Castro

Scanner + switch

Publicado por Carlos Castro (54 intervenciones) el 27/12/2016 03:25:24
Aumenta estas lineas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
case (2):
    System.out.println("Introduce nuevo nombre: ");
 
    sc.nextLine();
 
    CCC1.setNomCliente(sc.nextLine());
    System.out.println("Tu nuevo titular es "+CCC1.getTitular());
    break;
case (3):
    System.out.println("Introduce nuevo apellido");
 
    sc.nextLine();
 
    CCC1.setApeCliente(sc.nextLine());
    System.out.println("Tu nuevo titular es "+CCC1.getTitular());
    break;

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Scanner + switch

Publicado por Hector (2 intervenciones) el 27/12/2016 20:25:31
Muy simple, funcionó, muchisimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar