Tabla de contenidos
Estructura condicional (if, if-else)
Las sentencias entre llaves solo se ejecutan si la condición da como resultado el valor ‘verdadero’, pudiendo esta condición ser una expresión, un cálculo aritmético, etc.
if(condición) { sentencias }
Si existe/n sentencia/s ‘else if’, estas se evaluan solo si el anterior if o else-if ha resultado falso y se ejecutan las sentencias entre sus llaves solo si su condición es verdadera.
Si existe sentencia ‘else’, las sentencias entre sus llaves se ejecutarán si todo el resto de condiciones son falsas:
if(condición) { // sentencias si 'condición' es verdadera. } else if(condición2) { // sentencias si 'condición2' es verdadera. } else { // sentencias a ejecutar si 'condicion' y 'condición2' son falsas. }
Switch
A la hora de evaluar múltiples condiciones, resulta tedioso hacerlo encadenando estructuras if-else. Switch lo resuelve de una forma más cómoda. Su sintaxis:
switch(expresión) { case n1: sentencias [break;] case n2: sentencias [break;] default: sentencias por defecto }
Los valores de las clausulas ‘case’ se comparan sucesivamente con el resultado de ‘expresión’, en el orden en el que aparecen. Cada vez que hay una coincidencia, se ejecutan las sentencias contenidas en el case de dicha coincidencia. Técnicamente es así, aunque debe notarse que usualmente se introduce una sentencia ‘break’ en cada ‘case’. ‘break’ provoca que la secuencia de ejecución de sentencias «salte» fuera de la estructura actual, interrumpiendo así el flujo de ejecución y haciendo que continúe en la siguiente instrucción después del ‘switch’.
Se puede disponer de tantas clausulas ‘case’ como se necesite. La calusula ‘default’, también opcional, produce que se ejecuten sus sentencias contenidas si ninguno de los ‘case’ coincide con ‘expresión’.
El bucle for
for (inicialización/es; condición/es; sentencia3) { sentencias si condición es verdadero }
- ‘inicialización/es’ es opcional, se usa para inicializar valor/es y se ejecuta una sola vez, antes del inicio del bucle. Si hay más de una sentencia estas se separan con comas.
- ‘condición/es’ se evalúa antes de cada iteración del bucle. Si el resultado es ‘verdadero’ el bucle continua y se ejecuta otra iteración.
- ‘sentencia3’ se ejecuta después de cada iteración, y esta suele incrementar en uno un contador que determina la continuidad o final del bucle.
El flujo continuará ejecutando las sentencias dentro del ‘for’ de forma indefinida, repitiendo cada iteración hasta que la condición se evalúe como falsa.
El bucle while
while(condición) { sentencias }
El bucle continua con sus iteraciones hasta que en alguna de estas la condición se evalue como falsa. Es necesario asegurarse de que en algún momento la condición de continuidad será evaluada como falsa, por ejemplo incrementando en uno, en cada iteración, una variable que haga de contador.
Valores falsos y verdaderos
Los siguientes valores serán evaluados como falsos en una comprobación de condición:
- false
- undefined
- null
- 0 (cero)
- NaN
- Cadena vacía («»)
El resto de valores, serán evaluados como verdaderos.
No confundir los valores primitivos booleanos true y false con el verdadero y falso del objeto Boolean. Por ejemplo:
var x = new Boolean(false); if (x) /* Esta condición será evaluada como true */