C Condicionales

Introducción a los condicionales de C: if / else y switch

Cualquier lenguaje de programación proporciona a los programadores la capacidad de realizar elecciones.

Queremos hacer X en algunos casos e Y en otros casos.

Queremos verificar los datos y hacer elecciones basadas en el estado de esos datos.

C nos proporciona 2 formas de hacerlo.

El primero es elifdeclaración, con suelseayudante, y el segundo es elswitchdeclaración.

if

En unifdeclaración, puede verificar que una condición sea verdadera y luego ejecutar el bloque provisto en las llaves:

int a = 1;

if (a == 1) { /* do something */ }

Puede agregar unelseblock para ejecutar un bloque diferente si la condición original resulta ser falsa;

int a = 1;

if (a == 2) { /* do something / } else { / do something else */ }

Tenga cuidado con una fuente común de errores: utilice siempre el operador de comparación==en comparaciones, y no el operador de asignación=, de lo contrario elifLa verificación condicional siempre será verdadera, a menos que el argumento sea0, por ejemplo si lo hace:

int a = 0;

if (a = 0) { /* never invoked */ }

¿Por qué pasó esto? Debido a que la verificación condicional buscará un resultado booleano (el resultado de una comparación), y el0número siempre equivale a un valor falso. Todo lo demás es cierto, incluidos los números negativos.

Puedes tener varioselsebloques apilando variosifdeclaraciones:

int a = 1;

if (a == 2) { /* do something / } else if (a == 1) { / do something else / } else { / do something else again */ }

switch

Si necesita hacer demasiados bloques if / else / if para realizar una verificación, tal vez porque necesita verificar el valor exacto de una variable, entoncesswitchpuede ser muy útil para ti.

Puede proporcionar una variable como condición y una serie decasepuntos de entrada para cada valor que espera:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else */ break; }

Necesitamos unabreakpalabra clave al final de cada caso, para evitar que el siguiente caso se ejecute cuando finalice el anterior. Este efecto de "cascada" puede resultar útil de varias formas creativas.

Puede agregar un caso "general" al final, etiquetadodefault:

int a = 1;

switch (a) { case 0: /* do something / break; case 1: / do something else / break; case 2: / do something else / break; default: / handle all the other cases */ break; }

Descarga mi gratisManual de C


Más tutoriales de clang: