Estructuras de control

Guardar en PDF

 

Condicional IF

La estructura más utilizada en JavaScript y en la mayoría de lenguajes de programación es la estructura if. Se emplea para tomar decisiones en función de una condición.

Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se encuentran dentro del if.

Si la condición no se cumple (es decir, si su valor es false) no se ejecuta ninguna instrucción contenida en dentro del if y el programa continúa ejecutando el resto de instrucciones del script.

		
  if(CONDICION){
  SENTENCIAS A EJECUTAR
  } 
  
  1. let usuarioPermiteMensajes = true ;
  2. if (usuarioPermiteMensajes == true) {
  3. alert (”Es la primera vez que se muestra”);
  4. }

if / else

En el caso del ejemplo anterior, si cumplíamos la condición ejecutaba la sentencia, pero si no la cumplía la ignoraba siguiendo con el código siguiente.

Pero también podemos indicarle lo que tiene que hacer en caso de que no se cumpla dicha condición.

  1. let nombre, edad;
  2. nombre = “Pepe“
  3. edad = 16;
  4. if (edad<18){
  5. document.write(’Vaya,+ nombre +, eres menor de edad’);
  6. }else{
  7. document.write( nombre +” tu tienes mas de 18 años”);
  8. }

Más de una condición

Antes hemos visto los operadores lógicos && , ||, esto lo podemos utilizar para poner más de una condición en la pregunta.

Imaginemos que queremos saber si alguien tiene mas de 18 años pero menos de 35, pues tendríamos que preguntar por las dos condiciones.

  1. let edad = 36;
  2. if( edad < 18 && edad > 35) {
  3. alert(“está en la franja de edad“);
  4. } else{
  5. alert(“No está en la edad indicada“);
  6. }

If / else anidados

En muchas ocasiones no queremos ejecutar una sentencia a partir de una sola condición, si no de varias. Por ejemplo supongamos que dependiendo de un tramo de edad queremos que lance un mensaje diferente.

Para ello tendremos que hacer varias preguntas aunque finalmente se ejecute una sola sentencia.

  1. Escribe un algoritmo en JavaScript que pregunte un número entero, y nos diga el número de cifras que tiene.
  2. Hacer un programa que pida un número al usuario y indicar si ese número es par o impar.

Solución ejercicio 1
Solución ejercicio 2

Aunque existen varios métodos para introducir datos, ahora puede ayudarte del método prompt, lanzará una ventana en el navegador y asignará a uno variable el valor introducido.

  1. let nombre = prompt(“Introduzca su nombre:, ” ” )
  2. document.write(<H2>Bienvendio,+ nombre +</H2>)

En caso de que queramos obtener un número, es necesarios "parsearlo", pues desde html siempre nos devolvera un dato de tipo texto. Esto lo podemos hacer utilizando la función parseInt()

  1. let numero = prompt(“Introduzca su nombre:, ” ” );
  2.                 numero = parseInt(numero);
  3. document.write(<H2>El numero es:  “ + numero +</H2>)

Video Condicional IF/ELSE

Ver en Vimeo

Condicional ternario

Cuando queremos hacer un condicional con una sola sentencia también tenemos la opción de utilizar el ternario, aunque su uso no es muy aconsejado pues dificulta la lectura del código.

Ejemplo:

  1. (x ≥ y) ? alert(“elmayoresx”) : alert(“elmayoresy”);

Switch

La estructura if...else se puede utilizar para realizar comprobaciones múltiples y tomar decisiones complejas. Sin embargo, si todas las condiciones dependen siempre de la misma variable, el código JavaScript resultante es demasiado redundante.

En estos casos, la estructura switch es la más eficiente, ya que está especialmente diseñada para manejar de forma sencilla múltiples condiciones sobre la misma variable. Su definición formal puede parecer compleja, aunque su uso es muy sencillo.

  1. switch (condición) {
  2. case valor1:
  3. sentencia a ejecutar; break;
  4. case valor2:
  5. sentencia a ejecutar; break;
  6. default:
  7. sentencia por omisión;
  8. }
Ejemplo:

Queremos indicar que día de la semana es. Si el día es 1 (lunes) sacar un mensaje indicándolo, si el día es 2 (martes) debemos sacar un mensaje distinto y así sucesivamente para cada día de la semana, menos en el 6 (sábado) y 7 (domingo) que queremos mostrar el mensaje .es fin de semana”. Para días mayores que 7 indicaremos que ese día no existe.

  1. let day = 2
  2.                 switch ((day+1) {
  3.   case 0:
  4.     day = "Sunday";
  5.     break;
  6.   case 1:
  7.     day = "Monday";
  8.     break;
  9.   case 2:
  10.     day = "Tuesday";
  11.     break;
  12.   case 3:
  13.     day = "Wednesday";
  14.     break;
  15.   case 4:
  16.     day = "Thursday";
  17.     break;
  18.   case 5:
  19.     day = "Friday";
  20.     break;
  21.   case 6:
  22.     day = "Saturday";
  23.     break;  
  24.   default:
  25.     day = "La semana solo tiene 7 días";
  26. }
  27.  
  28. console.log(day);

En este ejemplo, la declaración switch evalúa el número de el día de la semana y asigna una cadena de texto a la variable day. La declaración break se utiliza para salir del bloque switch después de que se haya asignado un valor a day.

En este ejemplo, si el día de la semana actual no es ninguno de los casos enumerados, la variable day se asignará un mensaje a la variable.

Video Condicional Switch

Ver en Vimeo

For

La estructura for permite realizar repeticiones (también llamadas bucles) de una forma muy sencilla.
Sintaxis: for(inicializacion; condicion; actualizacion) { ... }
La idea del funcionamiento de un bucle for es la siguiente: ”mientras la condición indicada se siga cumpliendo, repite la ejecución de las instrucciones definidas dentro del for. Además, después de cada repetición, actualiza el valor de las variables que se utilizan en la condición”.

  1. let mensaje = ”Hola , estoy dentro de un bucle ”;
  2.  
  3. for(let i=0; i<5; i++){
  4.         console.log(mensaje);
  5. }

Los bucles se usan a menudo para recorrer una serie de elementos, indexar un vector, contar algo, etc.. La palabra inglesa “for” se corresponde con la preposición española “para”. En concreto un bucle for, podría traducirse en pseudocódigo algo como: “para todos los elementos que cumplen cierta condición, realiza la sentencia del cuerpo del bucle, y tras cada iteración ejecuta ciertas actualizaciones”. Un ejemplo de un “para” lo tenemos también en el signo que se emplea en la notación matemática para formular teoremas.

Ejemplo:

Imprimir los números pares del 1 al 100 por la consola

  1. for (let i = 1; i <= 100; i++) {
  2.   if (i % 2 === 0) {
  3.     console.log(i);
  4.   }
  5. }

Video Condicional IF/ELSE

Ver en Vimeo
Existen variaciones del bucle for como el for-in. Estos resultan utiles para recorrer estructuras de datos como arrays u objetos. Este tipo de estructuras los estudiaremos mas adelante, pero veamos un ejemplo de como recorreriamos un string o cadena de texto.
  1. const str = "hello";
  2.  
  3. for (const char of str) {
  4.   console.log(char);
  5. }
Este código imprimirá cada carácter de la cadena "hello" en la consola: "h", "e", "l", "l" y "o".

While

La palabra “while” en inglés significa “mientras”. Es obvio que una estructura iterativa while contiene por tanto, una pregunta o condición de finalización del bucle del estilo “mientras ocurra tal condición continúa iterando”.

  1. while (condicion){
  2. <sentencia>;
  3. }

Dentro de las operaciones del bucle lo normal será encontrarse alguna sentencia que actualice la condición del bucle

Por ejemplo, para escribir un bucle que debe iterarse un número N fijo de veces usando un bucle while se debe recurrir a una variable que actúe de “contador”, y que se vaya incrementando dentro del cuerpo del bucle.

  1. cont=0;
  2. N=100;
  3. while (i<N){
  4. <operaciones a realizar>;
  5. cont++;
  6. }

Do While

La diferencia básica con el bucle while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evalúa la condición;
También se le conoce por esta razón como ciclo de condición de salida.
Su formato general es :

  1. do {
  2. grupo cierto de instrucción(es);
  3. Instrucción(es) de rompimiento de ciclo;
  4. } while (condición);

Autor: Antonio Otero