Alguien que entienda de java?

confusedmind está baneado por "Faltas de respeto"
es una chorrada pero es que se hacerlo en otros lenguajes pero no me sale aquí y me estoy volviendo loco........

public class PatataCaliente {
   
    public static void main (String []args){
        // Variables
        int numero = 0;// Que el usuario introduce por pantalla
        int intentos = 0;// intentos del usuario. Máximo 10
        int numPregunta = (int)(Math.random()*3);
        String pregunta="";
        int respuesta = 0;
       
        // Ejecucion del programa
        switch( numPregunta ){
            case 0:
                 pregunta = "En que año nacio Albert Einstein ";
                 respuesta = 1893 ;
                 break ;
            case 1:
                pregunta = "En que año nacio Federico Garica Lorca ";
                respuesta = 1893 ;
                break ;
            default:
                pregunta = "En que año nacio Miguel Indurain ";
                respuesta = 1893 ;
                break ;
        }
       
        Scanner teclado = new Scanner(System.in);
   
        do{
                System.out.println(pregunta);
                numero = teclado.nextInt();
                intentos++;
                System.out.println("La fecha seleccionada fue: " + numero);
                if (numero > respuesta){
                    System.out.println("La fecha es menor. Intentalo otra vez.");
                }
                if (numero < respuesta ){
                    System.out.println("La fecha es mayor. Intentalo otra vez.");
                }
        }while( numero != respuesta && intentos < 10);

        if( intentos < 11){
            System.out.println("Enhorabuena. La fecha era:  " + respuesta);
            System.out.println("Lo has conseguido en " + intentos + " intentos." + " Te has salvado por los pelos.");   
        }else{
            System.out.println("Has superado el numero de intentos: " + intentos + " Explota la patata.");   
        }
}
   
}


simplemente es meter lo que hay dentro del main, en una función por ejemplo, quería meter la parte del while que es la que formula las preguntas pero que no hay forma no se qué leches de sintaxis tendrá java que nunca me deja hacerlo y miro por google funciones java y no veo nada de nada que me valga, porque meta lo que meta siempre me salta algún pete....

cómo puedo sacar el switch por ejemplo y el último do while en 2 funciones y simplemente llamarlas desde el main?? seguro que es una chorrada pero me está comiendo la moral esto [+furioso]
Java es un orientado a objetos, por tanto no se permiten crear funciones individuales. Tienes dos opciones:

- Crear una nueva clase y en ella poner tus métodos.
- Definir nuevos metodos dentro de la clase principal "PatataCaliente". Ahora bien, dado que main es un miembro "static", las funciones también deben serlo:

public class PatataCaliente
{
  //...
 
  static void HacerPreguntas()
  {
     // Lo que venga aquí.
  }
}
confusedmind está baneado por "Faltas de respeto"
arañanegra escribió:Java es un orientado a objetos, por tanto no se permiten crear funciones individuales. Tienes dos opciones:

- Crear una nueva clase y en ella poner tus métodos.
- Definir nuevos metodos dentro de la clase principal "PatataCaliente". Ahora bien, dado que main es un miembro "static", las funciones también deben serlo:

public class PatataCaliente
{
  //...
 
  static void HacerPreguntas()
  {
     // Lo que venga aquí.
  }
}


muchas gracias, voy a probar como me has dicho [beer]

pues no se... pongo lo de:

static void HacerPreguntas()
{
// Lo que venga aquí.
}

y me dice que illegal start of expression y lo ponga como lo ponga siempre igual. a ver si lo saco [carcajad]

aparte el problema es que no me pilla las variables definidas en el main si creo otro static void para hacer ahí las preguntas

es que no entiendo nada. si defino variables dentro de un static void xxxxxxxxx () luego en otro static void no me las reconoce..... cómo hago para que me pille las variables de forma global o poderlas pillar?
3 respuestas