elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / Java / Re: Ayuda con Switch anidados en: 3 Diciembre 2016, 19:23 pm
Lo normal es que vaya a donde quieras de forma "natural". Por ejemplo, tienes un do-while. Su condición, si es false, lo haría salir al anterior, y luego lo mismo para el B.
También puedes poner una flag:
Código
  1. boolean salir = false;
  2. do{
  3.    // switch
  4.    salir = true;
  5. }while(/* tu condición */ && !salir);

Otra opción, es con el "break with label":
Código
  1. search:
  2. for (i = 0; i < arrayOfInts.length; i++) {
  3.    for (j = 0; j < arrayOfInts[i].length; j++) {
  4.        if (arrayOfInts[i][j] == searchfor) {
  5.            foundIt = true;
  6.            break search;
  7.        }
  8.    }
  9. }
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html


Siempre que puedas, mi recomendación es que lo hagas sin labels, de la forma más estructurada posible (Otros lenguajes no te permitirán hacer lo del label)

Otra opción, sería dividir el código en funciones (donde sean necesarias). Así, tendrás 2 posibilidades: break y return. Return saldrá de todos los loops y switchs, mientras que break solo del primero.

Muchas gracias pero lo que yo quiero no es retroceder al anterior, quiero ir directamente al primero.
22  Programación / Java / Ayuda con Switch anidados en: 3 Diciembre 2016, 12:47 pm
Bueno mi pregunta es sencilla, cómo hago para salir de switch anidados, pero no al anterior, sino al 1º de todos. Ejemplo:
Código
  1. public class prueba_ {
  2.  
  3. public static void main(String[] args) {
  4. int a;
  5. int b;
  6. int c;
  7. do {
  8. /*Supongamos inicio a */
  9. switch (a) {
  10. case 1: /*Sentencias... */ break;
  11. case 2: /*Sentencias... */ break;
  12. case 3: /*Sentencias... */ break;
  13. case 4:  
  14.  
  15. do {
  16. /*Supongamos inicio b */
  17. switch (b) {
  18. case 1: /*Sentencias... */ break;
  19. case 2: /*Sentencias... */ break;
  20. case 3:
  21. do {
  22. /*Supongamos inicio c */
  23. switch (c) {
  24. case 1: /*Sentencias... */ break;
  25. case 2: /*Sentencias... */ break;
  26. default: break;
  27. }
  28. } while (c<2);
  29. default: break;
  30. }
  31. } while (b<3);
  32. default: break;
  33. }
  34. } while (a<4);
  35. }
  36.  
  37. }

Como podría por ejemplo ir directamente del case 1 del switch c, al switch a.
Gracias de antemano.
23  Programación / Java / Re: Una dudilla para un programa Java en: 1 Diciembre 2016, 19:20 pm
Muestra lo que tienes para dar una idea, por ejemplo me imagino algo como:

Código
  1. class Juego{
  2.    private int intentosMin = 99; //cualquier número muy alto
  3.  
  4. public void play(){
  5.    int intentos = 1;
  6.    /*
  7.     * Aqui la lógica del juego
  8.     * intentos++;
  9.     */
  10.    if( intentos < intentosMin)
  11.        intentosMin = intentos;
  12.  
  13.    System.out.println("Terminado en " + intentos + " intentos");
  14.    System.out.println("Record : " + intentosMin + " intentos");
  15. }
  16.  
  17. }

Código
  1. Juego miJuego = new Juego();
  2. miJuego.play(); //jugar por primera vez
  3. miJuego.play(); //jugar por segunda vez
Saludos  ;D

Bueno creo que con lo que acabas de hacer, me has dado la idea que necesitaba. MUCHAS GRACIAS XD
24  Programación / Java / Re: Una dudilla para un programa Java en: 1 Diciembre 2016, 15:42 pm
Hay dos opciones. Una es declarar esa variable como estatica, con lo que será compartida por cualquier clase que haya en el programa (fuera de otras clases claro). Si el problema es que se pone a cero cada vez que inicias el programa, entonces es algo tan simple como que debes de guardar ese dato en un recurso externo. Lo normal es que en un fichero, por ejemplo uno de simple texto plano

No no me has entendido. Yo no quiero que los datos se guarden al finalizar el programa. Yo lo que digo es que cuando esté el programa en ejecución si tú haces el juego 1 vez, te ponga esos intentos. Pero si lo haces una 2º vez, si esos intentos son menores que los de la 1º vez, cambien, si y solo sí, son menores que los primeros. De momento no me interesa almacenar los intentos en ningún sitio, quiero que sean volátiles pero que se actualicen como he comentado xd. Gracias
25  Programación / Java / Una dudilla para un programa Java en: 30 Noviembre 2016, 12:33 pm
Hola muy buenas, necesitaría que alguien me diese una pista de como puedo hacer esto.

El ejemplo es el siguiente:

Yo ejecuto un juego, ejemplo:
-Juego1
-Juego2
...
etc

Y al acabarlo, me pone esto.
Juego1 (Acabado en x intentos)
Juego2
...
etc

Hasta ahí bien, lo que yo quiero saber es como puedo decirle que esos intentos (x) no cambien si al hacer otra vez el juego son mayores que los de antes, es decir, al ejecutar otra vez el juego y tener unos intentos "y", si esos "y" son mayores que los "x", no cambie ese valor.

El problema que tengo es que me los cambia sea cual sea los valores, y bueno necesito algo de ayuda de alguien que me diga por donde podrían ir los tiros. Gracias de antemano.
26  Programación / Java / Re: ¿Alguna idea para esto? en: 27 Noviembre 2016, 10:51 am
variables globales... basicamente es declarar una variable en el maximo scope del programa...

no trabajo en java... asi que no estoy muy seguro de ello, pero creo que es creando una clase publica externa

Código
  1. public class Example {
  2.    public static int a;
  3.    public static int b;
  4. }

y las accedes


Código
  1. Example.a;
  2.  
  3. Example.b;


Muchas gracias, era así.
27  Programación / Java / ¿Alguna idea para esto? en: 26 Noviembre 2016, 11:40 am
Hola muy buenas. ¿Alguien me puede decir como podría mantener una variable durante toda la ejecución del programa? Explico la situación: Yo tengo una variable (llamemosle a) que la declaro al principio del programa. Esa variable luego la uso en una parte del programa, y obviamente, se actualiza y pasa a tener otro valor distinto. Mi pregunta es: ¿Ese valor final con el que me queda, hay alguna manera de "guardarlo" y usarlo mientras el programa esté en ejecución? Es decir, en una parte anterior al momento en el que se actualizó esa variable. Por ejemplo para esto:

Yo tengo lo siguiente:
1-Juego1
2-Juego2
...
Etc

Si yo quiero por ejemplo que me salga al resolver el juego 1, así:
1-Juego1 (Resuelto).
2-Juego2
...

En una primera vez sé hacerlo, es decir, ejecutas el programa, y si quieres no continuar  el juego, te dice eso. El problema viene cuando yo por ejemplo me salgo de el "switch" a otro que está por encima. Cuando vuelvo, ya no me pone "resuelto", porque creo que esa variable ha volado. ¿Alguna idea? Gracias de antemano
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines