Unidad 10. Avanzado: JavaScript. Estructuras de control


Sentencia IF [ELSE]

La sentencia If evalúa una condición, expresada entre paréntesis ( ). Si esta se cumple, ejecuta el bloque de instrucciones que tiene entre llaves { }.

if (condición) {
   bloque de instrucciones;
}

También podemos indicar un bloque de instrucciones, con la palabra else, que se ejecutará si no se cumple la instrucción.

if (condición) {
   bloque de instrucciones si se cumple;
} else {
   bloque de instrucciones si nos e cumple;
}

Podemos poner varios else, con otras condiciones entre paréntesis. Se irán evaluando todas las condiciones hasta encontrar la primera cierta. Si una se cumple, se ejecutarán sólo esas instrucciones, aunque hubiesen otras condiciones ciertas. Si no se ha cumplido ninguna, se ejecutará el último else, si no tiene condición.

if (condición1) {
   bloque de instrucciones si se cumple condición1;
} else (condición2) {
   bloque de instrucciones si se cumple condición2;
} else (condición3) {
   bloque de instrucciones si se cumple condición3;
} else {
   bloque de instrucciones si no se ha cumplido ninguna;

}

Por ejemplo:

if (nota >= 0 && nota < 5) {
   return 'Suspenso';
} else (nota >= 5 && nota < 6) {
   return 'Suficiente';
} else (nota >= 6 && nota < 7) {
   return 'Bien';
} else (nota >= 7 && nota < 9) {
   return 'Notable';
} else (nota >= 9 && nota <= 10) {
   return 'Sobresaliente';
} else {
   return 'La nota no es válida. Tiene que estar entre 0 y 10';

}

Las sentencias If se pueden anidar, siempre que una quede completamente dentro de otra. Por ejemplo:

if (condición1) {
   if (condición2) {
      si se cumple condición 1 y condición2;
   } else {
      si se cumple condición 1 pero no condición2;
   }
} else {
   si no se cumple condición1
}

Cuando se emplea la sentencia If para asignar un valor a una variable, se suele utilizar la siguiente estructura, más compacta:

variable = (condición) ? valor_si_se_cumple : valor_si_no;

Por ejemplo:

calificacion = (nota < 5) ? 'Suspenso' : 'Aprobado';

La sentencia SWITCH

De forma parecida al If se comporta la sentencia Switch. Se le asigna un valor o expresión, y se compara con cada case. Ejecuta el código de la primera coincidencia encontrada. Si no encuentra ninguna, se ejecuta el código de default.

switch(expresion) {
  case valor1:
    instrucciones si coincide;
    break;
  case valor2:
    instrucciones si coincide;
    break;
  default:
    instrucciones si no coincide ninguna;
}

Por ejemplo:

function paginaFlores(categoria){
  switch(categoria) {
    case "silvestres":
      return "silvestres.html";
      break;
    case "ornamentales":
      return "ornamentales.html";
      break;
    case "exóticas":
      return "exoticas.html";
      break;
    case "plantas":
      return "palntas.html";
      break;;
    default:
      alert('No existe esa categoría');
      return "index.html";
  }

}

A la función anterior, se le pasa como parámetro el nombre de una categoría, y busca en el Switch una coincidencia con el parámetro par adevolver la página de la categoría. Si no encunetra ninguna coincidencia, muestra un mensaje y devuelve la página de inicio.

El bucle WHILE

Los bucles son estructuras fundamentales en programación, ya que permiten repetir una instrucción un número determinado de veces, o hasta que se cumpla una determinada condición (o deje de cumplirse).

En bucle While, evalúa una condición. Si se cumple, ejecuta su bloque de instrucciones, y vuelve a evaluar la condición. Si se cumple, vuelve a ejecutar las instrucciones, y así sucesivamente mientras que la condición se cumpla.

while (condición) {

   bloque de sentencias;
}

Por ejemplo, el siguiente bucle mostraría 5 mensajes. La variable i inicialmente vale 0. En cada vuelta del bucle, se comprueba si es menor de 5. Si lo es, se incrementa en 1 en la primera instrucción (recuerda que i++ equivale a i+=1, que equivale a i=i+1), se muestra el mensaje en la segunda, y vuelve a comenzar el ciclo. Cuando i sea 5, mostrará el quinto mensaje, y en la siguiente comprobación, la condición será falsa.

var i = 0;
while (i < 5) {

   i++;
   alert('Mensaje número ' + i);
}

El bucle While se puede expresar al revés, para que primero ejecute las instruciones, y después evalúe la condición. Esto asegura que por lo menos se ejecuten las instrucciones una vez, y se repitan mientras se cumpla la condición. Su sintaxis es:

do {
   bloque de sentencias;
} while (condición)

El bucle FOR

El bucle FOR se emplea normalmente para contar, para realizar una repetición un número determinado de veces.

Se define con un valor inicial para la variable que actúa como contador, la condición que se ha de cumplir para que el bucle se repita, y la actualización de la variable (normalmente un incremento). Estros tres parámetros, se separan por punto y coma (;).

for (valor_inicial; condición; actualización) {
   bloque de sentencias;
}

El orden de ejecución sería: asignar el valor inicial, evaluar la condición, si se cumple, ejecutar las sentencias, actualizar la variable, evaluar la condción, si se cumple ejecutar las sentencias, actualizar la variable, etc...

El mismo ejemplo que hemos utilizado con el bucle While para mostrar 5 mensajes, lo podemos expresar con un For como:

for (i=1; i<=5; i++) {
   alert('Mensaje número ' + i);
}

Una variante del For es la estructura For .. In, que nos permite reccorrer los elementos de un array o un objeto.

for (variable in objeto) {
   bloque de sentencias;
}

Si lo utilizamos con un array, lo que hará el bucle, es que para cada vuelta, variable tomará el valor de un elemento del array, comenzando por el primero, y se repetirá una vez para cada uno.

Por ejemplo:

function datosAlumno() {
  alumno = new Array('Juan', 25, 8.5);
  datos = 'Datos del alumno:'; 
  for (dato in alumno) {
     datos = datos + ' ' + dato;
  }
  return datos;
}

El bucle del ejemplo se repetirá tres veces, una para cada elemento. La función devolverá 'Datos del alumno: Juan 25 8.5'.

   Inicio    




.