es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dice “la variable pg1 puede no haber sido inicializada”, pero está claro que sí lo está y no veo ninguna posibilidad donde no lo pueda estar.

Estoy tratando de escribir un esquema para un código de aventura de elección propia para mi clase, pero dice que mi variable pg1 no ha sido inicializada, pero claramente lo ha sido y no veo ningún escenario en el que no lo esté. ¿Alguien puede echarle un vistazo y ayudar a solucionarlo?

public static boolean decOne()  //la primer decisión que tomar
   {
      boolean nxt = false;
      boolean bonus = false;
      int pg1;
      Object[] options = {"opt1","opt2","opt3","opt4"};
      while(nxt == false) {
            pg1 = JOptionPane.showOptionDialog(null,"aquí va el texto de la historia","aquí va el título",1,1,null,options,options[0]);
            if(pg1==0)
            {
               bonus = true;
               nxt = false;
            }
            else if(pg1==1)
            {
               nxt = false;
            }
            else if(pg1==2)
            {
               nxt = true;
            }
            else if(pg1==3)
            {
               nxt = false;
            }
      }
      return bonus;
   }
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema está en el alcance de la variable pg1. En el código, se declara dentro del método decOne y no se le asigna un valor en el momento de la declaración. Sin embargo, necesita recibir un valor antes de ser utilizado en las condiciones “if”.

    Para resolver el problema, puedes asignar un valor predeterminado a pg1 cuando se declara, por ejemplo:

    int pg1 = -1;

    Esto garantizará que pg1 tenga un valor al comienzo del bucle “while” y pueda utilizarse en las condiciones “if” sin ningún error.

    Como alternativa, puedes mover la declaración de pg1 fuera del método y convertirla en una variable de nivel de clase. Esto garantizará que pg1 mantenga su valor entre las llamadas de método y pueda ser accedido por otros métodos si es necesario.

Comments are closed.