Heyyyyyyyyyyyyyyy

Aprende a programar microcontroladores en C... http://tecdigitaldelbajio.com/software-tarjeta.html
Mostrando entradas con la etiqueta case. Mostrar todas las entradas
Mostrando entradas con la etiqueta case. Mostrar todas las entradas

sábado, 19 de septiembre de 2009

Uso del Debugger en NetBeans -- Parte II (ejemplo #12)



Al final del post anterior se inicio con lo del depurador de java. Ahí se vio que para iniciar el depurador se hacían dos cosas: Crear un “Break Point” y ejecutar el programa con el botón del depurador.

Al hacer lo anterior se ejecuta el programa, aparece la interfaz de usuario en el emulador. El ejemplo que se está analizando (viene del post anterior) tiene un textField para ingresar una carácter alfanumérico y además un stringItem para mostrar que tipo de carácter es (ver la parte I si no recuerdas esto) haa y un okCommand que al presionarse me indica que tipo de caracter es, es posible ingresar muchos caracteres, pero a final de cuentas solo interesa el primero que se ingresa, la figura siguiente muestra el emulador con el valor que se ingreso que es el “9E” todo ello ocurre justo antes de presionar el botón OK





Al dar clic en el comando OK justo la ejecución se detiene y aparece la línea verde y la barra de herramientas del debugger como se ve en la figura.




Recuerde, la ejecución se detiene cuando el programa llega al break point. A partir de ahí se inicia el análisis del código usando las herramientas del debugger. Justo aquí puedo iniciar la ejecución “paso a paso” con los botones que se muestran en la figura o también presionando F7 y F8.

Ejecutar paso a paso

Permite ejecutar el programa instrucción por instrucción, esto para ir analizando lo que va pasando en el programa, dando clic una vez se ejecuta la instrucción que está en la línea verde, la herramienta se activa también por medio de la tecla F8, a veces resulta más cómodo presionar varias veces la tecla F8 que dar clic con el mouse.

La figura siguiente muestra como cambia la línea verde cuando se presiona dos veces la tecla F8.




Entonces lo anterior significa que se han ejecutado las dos instrucciones siguientes:

Valor = textField.getString();
chValor = valor.charAt(0);

y, recuerde la línea verde indica la próxima instrucción a ejecutarse, en este caso el switch. Bueno como se ejecutaron dos instrucciones es posible saber qué valor tomaron, las variables involucradas en las líneas de código anteriores. El lector ya imaginara que si se ingreso el “9E” y se ejecutaron las instrucciones anteriores entonces las variables involucradas toman los valores siguientes:

valor = “9E”
chValor = ‘9’

Precisamente el debugger sirve para rastrear los errores, él nos puede sacar de dudas para saber si es cierto que toman esos valores, con solo colocar el mouse encima de la variable podemos ver el valor que van tomando, la figura siguiente muestra esto:



De igual forma se puede ver el valor de la variable chValor que es de ‘9’ tal y como se esperaba, recuerde que esa instrucción solo toma el primer carácter de la cadena introducida.

Otra forma de ver las variables y sus valores, sin necesidad de colocar el mouse es desde la ventana de variables, una figura vale más que mil palabras.



Dando clic en “Enter new Watch” se agregan las variables.

En este punto se puede seguir presionando la tecla F7 ( o F8) y seguir ejecutando el programa paso a paso, el lector podrá ver por dónde se va la ejecución del programa cuando es un número (como en este caso), se puede ver que hace lo correcto, el problema es con las vocales.

La solución al problema se puede ver en el video siguiente que muestra todo el proceso desde la creación del código visto en el post anterior, el uso del debugger hasta llegar a corregir el error.




Clic AQUI para leer más...!

miércoles, 9 de septiembre de 2009

Instrucción de selección Múltiple



Hasta el momento se ha mostrado en el blog, programas que hacen uso de sentencias if que nos llevan a realizar una o dos acciones, aunque usando if’s anidados se pueden realizar más acciones, pero el código se vuelve, podemos decir más complejo.
Existe en java una instrucción que me permite evaluar el valor de una variable y decidir qué acción tomar de una o muchas más acciones, un diagrama de la instrucción se puede ver en la figura siguiente.


Usando esta estructura se evalúa el valor de la variable, esta variable puede tomar “n” valores y según el valor de la variable sigue uno de todos los caminos posibles.

Sintaxis para la instrucción de selección múltiple

La sintaxis exacta de esta instrucción es la siguiente:

Inicia con la sentencia siguiente:

switch ( variable ) {

Entre paréntesis se escribe la variable a evaluar, después de la anterior sentencia se escriben cada uno de los casos posibles, usando las sentencias siguientes:


case 0: //Instrucciones para cuando la variable vale 0
                                                     break;
                                          case 1: //Instrucciones para cuando la variable vale 1
                                                     break;



El break es usado para decirle a Java que se termina el caso y se finaliza la instrucción, se procede de esa forma a colocar los casos necesarios, existe un caso, el denominado “default”, que si no se cumple ningún caso de los anteriores, ejecuta ese caso, su sintaxis es:
                                        
                                          default: //Instrucciones para cuando la variable no cumple ningún caso anterior
                                                    break;

finalmente con una } se cierra el switch y se termina la instrucción. Enseguida se ve un ejemplo para que les quede más claro a os lectores.

Ejemplo

Imagínese que me piden realizar un programa que pida un número entre 1 y 7 y que me diga que día de la semana es, suponiendo que 1 es el día lunes, 2 el martes y así sucesivamente.

Solución

Se crea la interfaz de usuario, se requiere un simple objeto TextField para ingresar el número y un objeto stringItem para mostrar el resultado. Primero se lee el valor usando las sentencia getString() como ya se ha visto infinidad de veces, se cambia el valor a entero, por si el lector no lo recuera enseguida se muestra el código que hace lo dicho anteriormente:

Valor = TextField.getText();
intValor = Integer.ParseInt(valor)


Enseguida se realizan las comparciones respectivas para mostrar el mensaje correspondiente, esto como se imaginaran se puede realizar fácilmente con varios if´s, pero el objetivo es usar la nueva instrucción, la sintaxis de la instrucción de selección múltiple es como sigue:

switch( intValor) {
case 1: stringItem.setText(“El día es lunes”);
case 2: stringItem.setText(“El día es martes”);
case 3: stringItem.setText(“El día es lunes”);
// … etc…
case 7: stringItem.setText(“El dia es lunes”);
case default: stringItem.setText(“ERROR: ingresaste un número incorrecto, debe ser entre 1 y 7”);
}


Para reforzar el tema se muestra en la animación siguiente los caminos que toma la instrucción cuando se ejecuta el código anterior. Basta con que el lector coloque un número en el cuadro de texto y de clic en el botón para que se ejecute la animación, inclusive puede el lector colocar números negativos o mayores a 7 para que vea el camino que sigue el flujo de programa




>



Pues creo que con la animación quedo muy claro comofunciona la instrucción, recuerde, se evalua el valor y se sigue un solo camino de instrucciones de muchos posibles y se termina la instrucción.
Bueno eso es todo de esta instrucción, en el post siguiente mostraremos un ejemplo completo de esta instrucción y hablaremos de cómo buscar errores lógicos en un programa o como comúnmente se le llama se verá como depurar o “debuggear” el programa usando netbeans.



Clic AQUI para leer más...!