Java - PROBLEMA CON SWITCH

 
Vista:

PROBLEMA CON SWITCH

Publicado por kener (8 intervenciones) el 07/03/2020 05:20:57
QUE TAL COMPAÑEROS

TENGO ESTE PROBLEMA

ESTOY QUERIENDO MOSTRAR LOS DATOS YA INGRESADOS PERO ME MUESTRA UN ERROR

EN EL CASE DOS ME MARCA EL ERROR AL PARECER ESTA INDICANDO QUE INITIALIZE VARIABLE I

EXISTE OTRA MANERA PARA QUE ME MUESTRE LO GUARDADO

LES AGRADEZCO SU APOYO
SALUDOS


1
2
3
4
5
for (int i = 0; i < a.length; i++) {
    System.out.println("el nombre es :" + a[i].getNombre()
            + "el apellido es :" + a[i].getApellido()
            + "el codigo es :" + a[i].getCodigo()
            + "la edad es :" + a[i].getEdad());


ASÍ ESTA MI CÓDIGO

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
import java.util.Scanner;
 
public class principal {
 
    public static void main(String[] args) {
 
        Scanner leer = new Scanner(System.in);
        int opcion;
 
        do {
            System.out.println("1.Capturar datos de los empleados\n ");
            System.out.println("2.Imprimir datos de los empleados\n");
            System.out.println("3.Capturar las edades de los empleados\n");
            System.out.println("4.Salir\n");
            System.out.println("seleccione una opcion\n");
 
            opcion = leer.nextInt();
 
            switch (opcion) {
 
                case 1:
 
                    datostrabajador a[] = new datostrabajador[2];
 
                    String nombre = "";
                    String apellido = "";
                    int edad = 0;
                    int codigo = 0;
 
                    for (int i = 0; i < a.length; i++) {
 
                        System.out.println("ingresa el nombre\n ");
                        nombre = leer.next();
                        System.out.println("ingresa el apellido\n");
                        apellido = leer.next();
                        System.out.println("ingresa el codigo\n");
                        codigo = leer.nextInt();
                        System.out.println("ingresa la edad\n");
                        edad = leer.nextInt();
                        a[i] = new datostrabajador(nombre, apellido, codigo, edad);
 
                    }
 
                    break;
 
                case 2:
 
                    for (int i = 0; i < a.length; i++) {
                        System.out.println("el nombre es :" + a[i].getNombre()
                                + "el apellido es :" + a[i].getApellido()
                                + "el codigo es :" + a[i].getCodigo()
                                + "la edad es :" + a[i].getEdad());
 
                        break;
 
            case 3:
                    break;
 
                default:
                    System.out.println("opcion invalida");
 
            }
        } while (opcion != 4);
        }
 
}
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 Elmastergear
Val: 12
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

PROBLEMA CON SWITCH

Publicado por Elmastergear (5 intervenciones) el 07/03/2020 06:24:03
bueno por lo que puedo ver en el CASE 2 el for lo estas cerrando hasta el default cuando deberias Cerrarlo antes
1
2
3
4
5
6
7
8
9
case 2:
 
for (int i = 0; i < a.length; i++) {
System.out.println("el nombre es :" + a[i].getNombre()
+ "el apellido es :" + a[i].getApellido()
+ "el codigo es :" + a[i].getCodigo()
+ "la edad es :" + a[i].getEdad());
} //<-- deberia ser aqui donde cierra
break;

y la otra es que no estas iniciando tu Array en el CASE 2 si no que estas inicializando tu array en el CASE 1 cuando deberías declarar tu array
1
datostrabajador a[] = new datostrabajador[2];
de menera Global al principio de tu codigo.
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

PROBLEMA CON SWITCH

Publicado por kener (8 intervenciones) el 07/03/2020 07:17:05
Cuando dices de manera global te refieres a fuera del swich?
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
Imágen de perfil de Elmastergear
Val: 12
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

PROBLEMA CON SWITCH

Publicado por Elmastergear (5 intervenciones) el 07/03/2020 07:34:27
Asi es afuera del switch te recomiendo que lo pongas como la primera linea o abajo de tu Scanner
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

PROBLEMA CON SWITCH

Publicado por kener (8 intervenciones) el 07/03/2020 07:34:30
ya se resolvió el problema

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

PROBLEMA CON SWITCH

Publicado por kener (8 intervenciones) el 07/03/2020 08:59:33
hola compañero

disculpa las molestias estoy por terminar
para el caso 3 solicita lo siguiente

cuántos empleados son jóvenes menores de 22 años
cuantos son maduros entre 22 y 50 años
cuantos son mayores con más de 50 años

no me da el resultado me marca error

crees que me puedas orientar donde esta el error ?


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
import java.util.Scanner;
 
public class principal {
 
    public static void main(String[] args) {
 
        Scanner leer = new Scanner(System.in);
        int opcion;
        int cantidadjovenes = 0;
        int cantidadmaduros = 0;
        int cantidadmayores = 0;
        int suma = 0;
        int SUMA = 0;
 
        datostrabajador a[] = new datostrabajador[3];
 
        do {
            System.out.println("1.Capturar datos de los empleados\n ");
            System.out.println("2.Imprimir datos de los empleados\n");
            System.out.println("3.Capturar las edades de los empleados\n");
            System.out.println("4.Salir\n");
            System.out.println("seleccione una opcion\n");
 
            opcion = leer.nextInt();
 
            switch (opcion) {
 
                case 1:
 
                    String nombre = "";
                    String apellido = "";
                    int edad = 0;
                    int codigo = 0;
 
                    for (int i = 1; i < a.length; i++) {
 
                        System.out.print("ingresa el nombre del trabajador numero " + i + ":");
                        nombre = leer.next();
                        System.out.print("ingresa el apellido del trabajado numero " + i + ":");
                        apellido = leer.next();
                        System.out.print("ingresa el codigo del trabajdor numero " + i + ":");
                        codigo = leer.nextInt();
                        System.out.print("ingresa la edad del trabajador numero " + i + ":");
                        edad = leer.nextInt();
                        a[i] = new datostrabajador(nombre, apellido, codigo, edad);
 
                    }
 
                    break;
 
                case 2:
 
                    System.out.println("estos son los datos de los trabjadores");
                    for (int i = 1; i < a.length; i++) {
                        System.out.println("el nombre es :" + a[i].getNombre());
                        System.out.println("el apellido es  :" + a[i].getApellido());
                        System.out.println("el codigo es :" + a[i].getCodigo());
                        System.out.println("la edad es  :" + a[i].getEdad());
                    }
 
                    break;
 
                case 3:
                    for (int i = 0; i < a.length; i++) {
                        if (a[i].getEdad() < 22) {
                            cantidadjovenes++;
 
                            if (a[i].getEdad() >= 25 && a[i].getEdad() <= 50) {
                                cantidadmaduros++;
                            }
 
                            if (a[i].getEdad() > 50) {
                                cantidadmayores++;
                            }
                            System.out.println("En la empresa existen " + cantidadjovenes + " jóvenes, " + cantidadmaduros+ " maduros y " + cantidadmayores + " personas mayores");
 
                        }
                    }
 
                    break;
 
                default:
                    System.out.println("opcion invalida");
 
            }
        } while (opcion != 4);
    }
 
}
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
Imágen de perfil de Elmastergear
Val: 12
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

PROBLEMA CON SWITCH

Publicado por Elmastergear (5 intervenciones) el 07/03/2020 13:45:32
Bueno si veo así rápido en esta parte no estas cerrando el if
1
2
3
if (a[i].getEdad() < 22) {
cantidadjovenes++;
}<- aquí debería cerrar
Porque si no lo cierras ahí y tú edad llega a ser mayor o igual a 22 jamás se cumplirá tu condición y no se ejecutará nada y si te manda un error podrás postear el mensaje por que ya puede que surga el error en la clase datostrabajador que tienes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

PROBLEMA CON SWITCH

Publicado por kener (8 intervenciones) el 07/03/2020 19:01:57
compañeros este foro es increíble

y me da gusto haber contado con su apoyo

ya lo pude resolver

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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

PROBLEMA CON SWITCH

Publicado por Rodrigo (623 intervenciones) el 07/03/2020 14:47:51
Cuando pones un trozo de programa, usa el boton con este icono </> y
va a quedar asi:

1
2
3
4
5
6
if( condicion ) {
   instruccion;
}
 
for( ... ) {
}

Aparecen numeros de linea y la indentacion no se pierde. Es mas facil entender el codigo y ayudar asi.
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