![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
Problemas con while{}
Hola, agradecería mucho si me pueden ayudar, estoy realizando mi primera aplicación en android, es algo muy sencillo, o eso creía. Se trata de adivinar el número.
Se crea un número aleatorio, y luego el usuario debe adivinar cual es. El usuario tiene 3 intentos o si no pierde el juego, el problema es que al intentar colocar un while{} para contar los intentos, si el numero no corresponde al creado al azar, la aplicación "muere". Pasa con while, doWhile y un for. Intente, mezclar el while con if o switch pero el resultado es el mismo. Creo que la solución podría estar en que cuente (el contador de intentos) cada vez que hago click al boton y no cuando se cumple o no una de las condiciones pero no se como hacer eso y no he podido encontrarlo por ningún lado. int intento=0; int nume = (int) (Math.random()*5); String resul = "Respuesta correcta el numero era: " +nume ; String resul2 ="El numero es menor" ; String resul3="el numero es mayor" ; String perdio = "fallo sus 3 intentos, juego terminado"; EditText numero = (EditText)findViewById(R.id.editText1) ; String nombre = numero.getText().toString() ; int valor = Integer.parseInt(nombre) ; while(intento<3){ numero.setText("") ; switch (intento){ case 1: {if (nume==valor) { textView3.setText(resul); conta=4; } ;break;}//Fin case 1 case 2 : {if(nume<valor){ textView3.setText(resul2); intento++ ; } //fin si != ;break;} //Fin case 2 case 3: {if(nume>valor){ textView3.setText(resul3); intento++; } ;break;} }//Fin switch }//Fin while if (intento==3){ textView3.setText(perdio); }//fin si intentos if (conta==4){ textView4.setText("Gano el juego") ; } } ese es el código como está en este momento, tengo otro donde no ocupo un switch solo if pero sucede lo mismo. Si alguien sabe cual o cuales son los errores se lo agradecería mucho. Acepto todo tipo de criticas y ayuda ya que soy nuevo en android y todo me servira. De antemano gracias. |
|
#2
|
||||
|
||||
Como diría kriogeN, primero Java y después Android.
No sé en qué método estarás ejecutando eso, pero el fallo gordo es precisamente meter un while, efectivamente nunca sale del bucle salvo que pongas la correcta a la primera, y de ahí que quede bloqueado (edito: o no, es lioso con tanta llave y estructuras anidadas) . En cualquier caso sobran el while y el switch. La solución es la que indicas, cuando se aprieta el botón de adivinar se actualiza la variable intentos, se lee el EditText y se hace la comprobación. Sin bucles que bloqueen la ejecución del hilo principal de Android y sin ningún switch (¿qué sentido tiene hacer cosas distintas según el número de intento?) . Cómo hacer algo al apretar un botón viene en cualquier tutorial de Android, espero que estés siguiendo alguno! Por aquí suelen hablar bien del tutorial de sgoliver. Última edición por mocelet Día 22/09/14 a las 09:38:45 |
#3
|
||||
|
||||
Cita:
El tutorial de SgoLiver es muy muy muy bueno, incluso la última vez que lo vi le había añadido ejemplos de como usar los 2 menús laterales existentes en la librería de soporte, lo cual significa que también trata hasta el tema de los Fragment. |
#4
|
|
Cita:
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
Herramientas | |
|
|
Hora actual: 11:21:40 (GMT +2)
HTCMania: líderes desde el 2007