Las sentencias de selección permiten que un programa elija entre diferentes rutas de ejecución según condiciones específicas. Son fundamentales en C para implementar lógica decisional y flujo controlado, habilitando respuestas adaptativas a distintas situaciones.
Uso Básico de la Sentencia if
Sintaxis Genarel:
if (condición) {
// Código ejecutado si la condición es verdadera
}
Ejemplo Práctico:
int temperatura = 25;
if (temperatura > 30) {
printf("Hace calor\n");
}
Implementación de if-else
Formato de Declaración:
if (condición) {
// Ruta para condición verdadera
} else {
// Ruta para condición falsa
}
Demostración:
if (temperatura > 30) {
printf("Hace calor\n");
} else {
printf("Temperatura moderada\n");
}
Estructuras Multibifurcadas con if-else if-else
Esquema Sintáctico:
if (condición1) {
// Acción si condición1 se cumple
} else if (condición2) {
// Acción si condición2 se cumple
} else {
// Acción si ninguna condición previa se cumple
}
Código de Ejemplo:
if (temperatura >= 35) {
printf("Calor extremo\n");
} else if (temperatura >= 20) {
printf("Temperatura agradable\n");
} else if (temperatura >= 10) {
printf("Frío leve\n");
} else {
printf("Frío intenso\n");
}
Anidameinto de Sentencias if
Las sentencias if pueden anidarse para evaluar condiciones complejas o jerárquicas.
Ilustración con Código:
if (temperatura > 15) {
if (temperatura < 30) {
printf("Clima ideal\n");
} else {
printf("Demasiado caliente\n");
}
} else {
printf("Necesita abrigo\n");
}
Sentencia switch para Múltiples Casos
Estructura Típica:
switch (expresión) {
case valor_constante1:
// Instrucciones para este caso
break;
case valor_constante2:
// Instrucciones para este caso
break;
// Pueden añadirse más casos
default:
// Acción predeterminada si ningún caso coincide
}
Aplicación Ejemplar:
int código_error = 404;
switch (código_error) {
case 200:
printf("Operación exitosa\n");
break;
case 404:
printf("Recurso no encontrado\n");
break;
case 500:
printf("Error interno del servidor\n");
break;
default:
printf("Código de error desconocido\n");
}
Notas Clave:
- La expresión en switch debe ser de tipo entero o carácter.
- Cada etiqueta case requiere una constante, no una varible o expresión.
- El uso de break es esencial para evitar la ejecución continuada hacia los siguientes casos.
- El bloque default es opcional pero recomendado para manejar situaciones imprevistas.
Ejercicio Práctico: Clasificación de un Valor Numérico
#include <stdio.h>
int main(void) {
int valor;
printf("Ingrese un valor entero: ");
scanf("%d", &valor);
if (valor > 0) {
printf("Positivo\n");
} else if (valor < 0) {
printf("Negativo\n");
} else {
printf("Cero\n");
}
return 0;
}