buscador

Visita

Mostrando las entradas con la etiqueta Construcci贸n if. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Construcci贸n if. Mostrar todas las entradas

jueves, 7 de julio de 2016

馃搷 Actividad 6: Uso de operadores 馃懛 y construcciones de toma de decisiones ⇦⇧⇨ en Java

Bienvenido al Blog, en esta oportunidad desarrollaremos un tema de introducci贸n al desarrollo de programaci贸n orientado a objetos, para entender sobre c贸mo desarrollar un sistema con el lenguaje java veremos acerca del uso de operadores y construcciones de toma de decisiones en Java.

 Sobre el contenido …

v  El contenido de este blog tiene como fuente el curso Fundamentos de programaci贸n de Oracle.

v  Con algunos agregados del autor "EL INFORMATICO IBERO"馃懛

Un programa siempre tiene que realizar operaciones y tomar decisiones, estas decisiones previamente est谩n estructuras en condiciones, es decir si cumple tal condici贸n que ejecute tal tarea, sino cumple la condici贸n que realiza una tarea distinta.


Uso de operadores relacionales y condicionales

  Una de las tareas que suelen realizar los programas es evaluar una condici贸n y, en funci贸n del resultado, ejecutar diferentes bloques o “ramales” de c贸digo.

  Por ejemplo, su programa podr铆a comprobar si el valor de una variable es igual que el valor de otra variable y, en caso afirmativo, realizar una acci贸n o tarea.

  En la figura siguiente se ilustra un tipo de decisi贸n que las personas toman cada d铆a.

  Adem谩s de los operadores aritm茅ticos, como los de suma (+) e incremento (++), el lenguaje Java proporciona diferentes operadores relacionales y condicionales que incluyen < y > para expresar los conceptos menor que y mayor que, y && para expresar uni贸n (AND).

  Estos operadores se utilizan cuando se quiere que los programas ejecuten diferentes bloques o partes del c贸digo en funci贸n de distintas condiciones como, por ejemplo, comprobar si el valor de dos variables es el mismo.

  Cada uno de estos operadores se utiliza en el contexto de una construcci贸n de toma de decisiones del tipo if o if/else.

Ejemplo de un ascensor

  Ejemplo de un ascensor

    o   Un ascensor tiene muchas funciones. Las funciones que se citan  son:

  Las puertas del ascensor pueden abrirse.
  Las puertas del ascensor pueden cerrarse.
  El ascensor puede ascender un piso.
  El ascensor puede descender un piso.

o   A lo largo de este m贸dulo y los m贸dulos sucesivos tendr谩 ocasi贸n de ver diferentes variaciones de esta clase Elevator, en algunas de las cuales se ilustra el uso de construcciones de toma de decisiones.  Ejemplo de un ascensor

o   Un ascensor tiene muchas funciones. Las funciones que se citan en este curso son:

  Las puertas del ascensor pueden abrirse.

  Las puertas del ascensor pueden cerrarse.

  El ascensor puede ascender un piso.

  El ascensor puede descender un piso.

o    A lo largo de este m贸dulo y los m贸dulos sucesivos tendr谩 ocasi贸n de ver diferentes variaciones de esta clase Elevator, en algunas de las cuales se ilustra el uso de construcciones de toma de decisiones.

    • Una clase de prueba similar a la siguiente somete el c贸digo del ascensor a diferentes comprobaciones.


  Operadores relacionales

o   Los operadores relacionales comparan dos valores para determinar su relaci贸n.

o   En la tabla siguiente figuran las distintas condiciones que pueden comprobarse utilizando este tipo de operadores.

o   El resultado de todos los operadores relacionales es un valor boolean. Los valores booleanos pueden ser true o false. Por ejemplo, todos los ejemplos de la tabla anterior dan como resultado el valor true.

o El signo igual (=) se utiliza para realizar asignaciones, no para realizar comparaciones. Para realizar comparaciones recuerde utilizar el doble igual (==).

  Comprobaci贸n de la igualdad entre dos secuencias de caracteres

o   Si se utiliza el operador == para comparar diferentes referencias a objetos String, el operador comprueba si la direcci贸n contenida en dichas referencias es la misma, no su contenido.

o   ¿Son iguales todas las referencias a objetos String siguientes? ¿Qu茅 se imprimir谩 en la pantalla?

    • Si quiere verificar la equivalencia entre secuencias de caracteres, por ejemplo, para averiguar si el nombre “Fred Smith” es igual que “Joseph Smith” utilice el m茅todo equals de la clase String. La clase siguiente contiene dos nombres de empleados y un m茅todo para compararlos.

  Operadores condicionales

o   Tambi茅n necesitar谩 tener la posibilidad de tomar una sola decisi贸n en funci贸n de varias condiciones. En tales circunstancias, puede utilizar los operadores condicionales para evaluar condiciones complejas como un todo.

o   En la tabla siguiente figuran los operadores condicionales comunes del lenguaje Java. Por ejemplo todos los ejemplos de la tabla dan como resultado el valor booleano false.

    • ¿Qu茅 operadores relacionales y condicionales se reflejan en el p谩rrafo siguiente?

  Si el juguete es rojo, lo comprar茅. Sin embargo, si el juguete es amarillo y cuesta menos que uno rojo, tambi茅n lo adquirir茅. Si el juguete es amarillo y cuesta lo mismo o m谩s que otro art铆culo rojo, no lo comprar茅. Por 煤ltimo, si el juguete es verde, no lo comprar茅.


Creaci贸n de construcciones if e if / else

  Construcci贸n if

o   Una sentencia o construcci贸n if es aquella que ejecuta un bloque de c贸digo si una expresi贸n es true.

o   Existen diferentes variantes de la construcci贸n if b谩sica. No obstante, la m谩s sencilla es:

o   Donde:

  La expresi贸n_booleana es una combinaci贸n de operadores relacionales, operadores condicionales y valores que da como resultado el valor true o false.

  bloque_c贸digo representa las l铆neas de c贸digo que se ejecutan si (if) la expresi贸n es true.

    • En primer lugar se eval煤a la expresi贸n_booleana. Si la expresi贸n es true, se ejecuta bloque_c贸digo. Si la expresi贸n_booleana no es true, el programa salta directamente a la llave que marca el fin del bloque de c贸digo de la construcci贸n if.
    • La clase ElevatorTest comprueba un objeto Elevator efectuando llamadas a sus m茅todos. Uno de los primeros m茅todos a los que llama la clase ElevatorTest es goDown.

    • Llamar al m茅todo goDown antes de que el ascensor haya comenzado a subir genera un problema porque el ascensor empieza en el primer piso y no hay otros pisos por debajo (la constante MIN_FLOORS indica que el primer piso es la planta baja). Cuando se ejecuta, la clase ElevatorTest muestra lo siguiente:
    • Dos sentencias if pueden solucionar este problema. El m茅todo goDown siguiente contiene dos construcciones if que determinan si el ascensor deber铆a descender o mostrar un error.:
    • Si el valor de la variable currentFloor es igual que el de la constante MIN_FLOORS, aparecer谩 en la pantalla un mensaje de error y el ascensor no descender谩. Si el valor de la variable currentFloor es mayor que el de la constante MIN_FLOORS, el ascensor baja. Cuando se ejecuta, la clase ElevatorTest muestra lo siguiente:

  Sentencias if anidadas

o   En ocasiones, puede ser necesario ejecutar una sentencia if como parte de otra sentencia if. En el ejemplo siguiente se muestra c贸mo usar sentencias if anidadas para comprobar los valores de dos variables.:

o   Si el valor de la variable currentFloor es igual que el de la constante MIN_FLOORS, aparecer谩 en la pantalla un mensaje de error y el ascensor no descender谩.

o   Si el valor de la variable currentFloor es mayor que el de la constante MIN_FLOORS y las puertas est谩n cerradas, el ascensor baja.

o   No utilice las construcciones if/else con demasiada frecuencia porque pueden ser complicadas de depurar.

  Construcci贸n if/else

o   A menudo sucede que se quiere ejecutar un bloque de c贸digo si la expresi贸n es true y otro bloque de c贸digo cuando la expresi贸n es false.

o   Para estos casos, puede utilizar una construcci贸n if para ejecutar un bloque de c贸digo si la expresi贸n es true junto con una construcci贸n else que s贸lo se ejecute en caso de que la expresi贸n sea false.

o   La sintaxis de las construcciones if/else es como sigue:

o   Donde:

  expresi贸n_booleana es una combinaci贸n de operadores relacionales, operadores condicionales y valores que dan como resultado el valor true o false.

  bloque_c贸digo1 representa las l铆neas de c贸digo que se ejecutan si la expresi贸n es true y bloque_c贸digo2 representa las l铆neas de c贸digo que se ejecutan si la expresi贸n es false.

o   Puede utilizar una sentencia if/else para corregir el problema del ascensor que se dirige a una planta no v谩lida. El m茅todo goDown siguiente contiene una construcci贸n if que determina si el ascensor deber铆a descender o mostrar un error.

o   Si el valor de la variable currentFloor es igual que el de la constante MIN_FLOORS, aparecer谩 en la pantalla un mensaje de error y el ascensor no descender谩. En caso contrario (else), se considerar谩 que el valor de currentFloor es mayor que el de la constante MIN_FLOORS y el ascensor bajar谩 de planta. Cuando se ejecuta, la clase ElevatorTest muestra lo siguiente:

 

 Construcciones if/else encadenadas

o   Es posible encadenar varias construcciones if y else para evaluar sucesivas expresiones que den lugar a diferentes salidas en funci贸n del resultado. La sintaxis de las construcciones if/else encadenadas es como sigue:

Ejemplo:

o   Donde:

  expresi贸n_booleana es una combinaci贸n de operadores relacionales, operadores condicionales y valores que da como resultado el valor true o false.

  bloque_c贸digo1 representa las l铆neas de c贸digo que se ejecutan si la expresi贸n es true. bloque_c贸digo2 representa las l铆neas de c贸digo que se ejecutan si la expresi贸n es false y la condici贸n del segundo if es true. bloque_c贸digo3 representa las l铆neas de c贸digo que se ejecutan si la expresi贸n del segundo if tambi茅n se eval煤a como false.

o   A continuaci贸n se muestra una clase Fechas con varias construcciones if/else encadenadas que determinan cu谩ntos d铆as tiene un mes.

o   El m茅todo calcularNumDias encadena tres sentencias if/else para determinar el n煤mero de d铆as que tiene un mes. Aunque el c贸digo es sint谩cticamente correcto, el encadenamiento de sentencias if/else puede dar como resultado un c贸digo algo confuso y deber铆a evitarse.

        Uso de la construcci贸n switch

  Otra palabra clave utilizada para tomar decisiones en el programa es switch. La construcci贸n switch ayuda a evitar confusiones en la programaci贸n porque simplifica la organizaci贸n de los distintos bloques de c贸digo que pueden ejecutarse.

  La sintaxis de la construcci贸n switch es:

Ejemplo:

  Donde:

  La palabra clave switch indica una sentencia switch.

  variable es la variable cuyo valor se quiere verificar. La variable s贸lo puede ser de los tipos char, byte, short o int.

  La palabra clave case indica un valor que se est谩 comprobando. La combinaci贸n de la palabra case y un valor_literal se conoce como etiqueta case.

  El valor_literal es cualquier valor v谩lido que pueda contener una variable. Es posible tener una etiqueta case por cada valor que se quiera evaluar. Los valores literales no pueden ser ni variables, ni expresiones ni llamadas a m茅todos. S铆 pueden ser constantes (variables finales como MAX_NUMBER, definida anteriormente), literales (como ’A’ o 10) o ambas cosas.

  La sentencia [break;] es una palabra clave opcional que provoca la salida inmediata de la sentencia switch durante la ejecuci贸n. Sin esta sentencia, se ejecutar谩n todas las sentencias de bloque_c贸digo que sigan a la sentencia case aceptada (hasta llegar a una sentencia break o al final de la construcci贸n switch).

  La palabra clave default indica un bloque_c贸digo predeterminado que se ejecuta si no se cumple ninguna de las otras condiciones. La etiqueta default es similar a la construcci贸n else de las sentencias if/else. La palabra clave default es opcional.

Ejemplo Case

  El m茅todo calcularNumDias de la clase Fechas utiliza una sentencia switch para bifurcar el c贸digo en funci贸n del valor de la variable month. Si la variable month es igual a 1, 3, 5, 7, 8, 10 o 12, el c贸digo salta hasta la etiqueta case adecuada y desciende para ejecutar la l铆nea que imprime en la pantalla el mensaje “Ese mes tiene 31 d铆as”.

  Cu谩ndo usar construcciones switch

  La construcci贸n switch s贸lo se utiliza para verificar igualdades, no para comprobar si los valores son mayores o menores que otro valor. No es posible usar switch para realizar comprobaciones con respecto a varios valores y s贸lo puede utilizarse con tipos enteros.

  La construcci贸n switch puede considerarse como una opci贸n v谩lida para:

  Pruebas de igualdad

  Pruebas con respecto a un solo valor, como customerStatus

  Pruebas con respecto al valor de un tipo int, short, byte o char

   Es posible anidar otras construcciones, como if/else, dentro de las sentencias switch.

Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!