Sentencias condicionales — RexDac Academy

RexDac AcademyNotas técnicas · Ayuda tener algunos conocimientos previos
0%Notas publicadas leídas · en este dispositivo

Nivel 2 — Control de flujo

Sentencias condicionales

Notas originales de SunDiaL · Ver fuente en inglés

En desarrollo

Esta nota está en desarrollo.

Así se le indica al ordenador que tome decisiones. Hay tres tipos:

If

If es literalmente el «si» del lenguaje humano. Si ocurre algo, haz una cosa; en caso contrario, haz otra. La respuesta a «¿ha ocurrido algo?» es sí o no y, por tanto, un booleano. Pero un booleano estático no resulta muy útil, por lo que un if se define el 99 % de las veces mediante una condición, cuyo resultado es un booleano. La sentencia if puede tener uno o varios else if y un else, como se muestra a continuación. Observa que else debe ser el último de la cadena:

  1. If simple
if(condition)
{
	//do something
}
  1. If con else
if(condition)
{
	//do something
}
else
{
	//do something else
}
  1. If con else if y else
if(condition)
{
	//do something
}
else if(someOtherCondition)
{
	//do something else
}
else if(yetAnotherCondition)
{
	//do something else
}
//more can be added
else
{
	//do something else
}

Switch

Switch es otra forma de escribir un if. Está pensado para utilizarse con variables y valores en lugar de condiciones. A veces resulta más fácil de leer o escribir que un if.

Observa el uso de la palabra clave break. Es un ejemplo de sobrecarga de palabras clave: una palabra que suele utilizarse en un contexto tiene una función distinta en otro. En este caso, break suele utilizarse para detener bucles, pero aquí sirve para «detener un switch». Por eso podrías pensar en switch como un «bucle de una sola vez»… pero no sería del todo correcto, así que mejor no hacerlo.

Switch más básico

int x = 5;
switch(x)
{
	case 1:
	//do something when x == 1
	break;
	case 2:
	//do something when x == 2
	break;
	default:
	//do something when none of the above cases have been met
	break;
}

Equivale al siguiente if:

int x = 5;
if(x == 1)
{
	//do something when x == 1
}
else if(x == 2)
{
	//do something when x == 2
}
else
{
	//do something when none of the above cases have been met
}

Switch con caída al siguiente caso

int x = 5;
switch(x)
{
	case 1:
	case 2:
		//do something when x == 1 || x == 2
		break;
	default:
		//do something when none of the above cases have been met
		break;
}

Equivale al siguiente if:

int x = 5;
if(x == 1 || x == 2)
{
	//do something when x == 1 || x == 2
}
else
{
	//do something when none of the above cases have been met
}

Switch con tupla

int x = 5;
int y = 25;
switch ((x,y))
{
	case (1, 2):
		//do something when x == 1 && y == 2
		break;
	default:
		//do something when none of the above cases have been met
		break;
}

Equivale al siguiente if:

int x = 5;
int y = 25;
if(x == 1 && y == 2)
{
	//do something when x == 1 && y == 2
}
else
{
	//do something when none of the above cases have been met
}

Expresiones switch

TODO

El operador ternario

El operador ternario es un if escrito en una sola línea. Como su nombre indica, es un operador, y, como los operadores siempre devuelven un valor, el ternario se utiliza sobre todo en asignaciones. Su estructura es condition ? value when true : value when false. Ejemplo:

int x = 5;
int y = x == 2 ? 10 : 15;

Se lee como el siguiente if:

int x = 5;
int y;
if(x == 2)
{
	y = 10;
}
else
{
	y == 15;
}