Java - Duda acerca de una variable que no se han inicializado [error de principiante]

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Duda acerca de una variable que no se han inicializado [error de principiante]

Publicado por Jorge (10 intervenciones) el 17/02/2018 21:21:19
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
import java.util.Scanner;
public class CONDTRABAJO
{
    public static void main(String[]args)
    {
        Scanner leer=new Scanner(System.in);
        int a,b,c,d,e,f,g;
        System.out.println("Bienvenido, Se requieren vacantes para diversos trabajos dentro de la empresa, responde lo siguiente que se te pide");
        System.out.println("¿Cual es tu sexo? 1-Hombre 2-Mujer");
        a=leer.nextInt();
        if(a>=1 ||a<3){
        System.out.println("Ingresa el valor que corresponda a tu sexo e intentalo de nuevo");}
        System.out.println("¿Cual es tu nivel maximo de estudios?");
        System.out.println("1-Primaria");
        System.out.println("2-Secundaria");
        System.out.println("3-Bachillerato");
        System.out.println("4-Licenciatura o mayor");
        b=leer.nextInt();
        if(b>=5 || b>=0){
        System.out.println("Ingresa el valor que corresponde a tu nivel maximo de estudios y vuelve a intentarlo");}
        if(b==4){
        System.out.println("¿En que area te especializaste?");
        System.out.println("Fisico-matematico");
        System.out.println("Historico-social");
        System.out.println("Ciencias Biologicas");}
        e=leer.nextInt();
        System.out.println("¿Tienes hijos? 1-Si 2-No");
        c=leer.nextInt();
        if(c>=3||c<=0){
        System.out.println("Responde 1 si tienes hijos, o responde 2 si no los tienes y vuelve a intentarlo");}
        if(c==1){
        System.out.println("Cuantos hijos tienes?");
        g=leer.nextInt();}
        System.out.println("¿Tienes antecedentes penales? 1-Si 2-No");
        d=leer.nextInt();
        if(d>=3 || d<=0){
        System.out.println("Ingresa 1 si tienes antecedentes, o 2 si no es asi y vuelve a intentarlo");}
        if(d==1){
            System.out.println("Ingresa en dias la anterioridad de tus antecedentes");
            f=leer.nextInt();}
        if((a==1)&&(b==4||e==1)&&(c==1||g==1)&&(d==2)&&(d==1||f>=90)){
            System.out.println("Puedes ingresar al area de investigacion de la empresa");
        } else if((a==1||a==2)&&(b==4||e==2)&&(c==1||g==1)&&(d==2)&&(d==1||f>=90)){
            System.out.println("Puedes ingresar al area de bactereologia de la empresa");
        }
    }
}

Bueno ese es el codigo de mi programa pero me salta el tipico error de que la variable g y f no se han inicializado cuando se supone que se deben iniciar solo si la otra variable cumple la condicion, no se que hacer o como moverle para que no aparzca esto me podrian ayudar
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Duda acerca de una variable que no se han inicializado [error de principiante]

Publicado por 4L3J4NDR0 (2 intervenciones) el 22/02/2018 19:59:01
Mirando por encima tu codigo tienes un problema dentro de los dos condicionales siguientes:

1
2
3
4
5
6
7
8
9
if(d==1){
	System.out.println("Ingresa en dias la anterioridad de tus antecedentes");
	f=leer.nextInt();
}
 
if(c==1){
	System.out.println("Cuantos hijos tienes?");
	g=leer.nextInt();
}

Cuando D y C son valores diferentes a 1, no se va almacenar ningún valor en f y g, por que el codigo no contempla esa posibilidad, por ello arroja el error de que las variables no se han inicializado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(d==1){
	System.out.println("Ingresa en dias la anterioridad de tus antecedentes");
	f=leer.nextInt();
}
else{
    f=0;
}
 
if(c==1){
	System.out.println("Cuantos hijos tienes?");
	g=leer.nextInt();
}
else{
    g=0;
}

De esta forma si se está asegurando que f y g tomará un valor. En tu caso tendrías que evaluar el codigo para que en caso de que los condicionales anteriores sean falsos que debería ocurrir.
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