En programaci贸n, muchas veces necesitamos que el programa tome decisiones dependiendo de ciertas condiciones.
Por ejemplo:
- Si el usuario es mayor de edad, permitir acceso.
- Si la temperatura es muy alta, encender un ventilador.
- Si un n煤mero es positivo o negativo, mostrar un mensaje diferente.
Para esto se utilizan las estructuras de decisi贸n.
Las estructuras de decisi贸n permiten que el programa elija qu茅 instrucciones ejecutar seg煤n una condici贸n.
En el lenguaje C, las estructuras de decisi贸n m谩s comunes son:
ifif - elseifanidadosswitchswitchcon estructuras adicionales
驴Qu茅 es una condici贸n?
Una condici贸n es una expresi贸n que puede ser:
- verdadera (true)
- falsa (false)
En C, las condiciones generalmente utilizan operadores relacionales.
Ejemplos:
| Operador | Significado |
|---|---|
> | mayor que |
< | menor que |
>= | mayor o igual |
<= | menor o igual |
== | igual |
!= | diferente |
Ejemplo de condici贸n:
edad >= 18
Esto significa:
驴La edad es mayor o igual a 18?
Estructura if
La estructura if permite ejecutar un bloque de c贸digo solo si la condici贸n es verdadera.
Sintaxis
if (condicion) {
instrucciones;
}
Ejemplo simple
#include <stdio.h>
int main() {
int edad = 20;
if (edad >= 18) {
printf("Eres mayor de edad\n");
}
return 0;
}
Explicaci贸n
- Se declara la variable
edad. - El
ifverifica la condici贸nedad >= 18. - Como la condici贸n es verdadera, el mensaje se imprime.
Si la condici贸n fuera falsa, no pasar铆a nada.
Estructura if - else
Muchas veces necesitamos ejecutar una acci贸n si la condici贸n es verdadera y otra si es falsa.
Para esto se utiliza else.
Sintaxis
if (condicion) {
instrucciones_si_verdadero;
}
else {
instrucciones_si_falso;
}
Ejemplo
#include <stdio.h>
int main() {
int numero = 5;
if (numero % 2 == 0) {
printf("El numero es par\n");
}
else {
printf("El numero es impar\n");
}
return 0;
}
Explicaci贸n
El operador % calcula el resto de una divisi贸n.
Si el resto al dividir entre 2 es 0, el n煤mero es par.
Estructuras if anidados
Un if anidado ocurre cuando un if est谩 dentro de otro if.
Esto permite evaluar varias condiciones paso a paso.
Sintaxis
if (condicion1) {
if (condicion2) {
instrucciones;
}
}
Ejemplo
Determinar si un n煤mero es positivo, negativo o cero.
#include <stdio.h>
int main() {
int numero = 10;
if (numero >= 0) {
if (numero == 0) {
printf("El numero es cero\n");
}
else {
printf("El numero es positivo\n");
}
}
else {
printf("El numero es negativo\n");
}
return 0;
}
Explicaci贸n
- Primero se verifica si el n煤mero es mayor o igual a 0.
- Si lo es, se revisa si es exactamente 0.
- Si no es 0, entonces es positivo.
- Si el primer
ifes falso, el n煤mero es negativo.
Estructura switch
La estructura switch se utiliza cuando hay muchas opciones posibles basadas en el valor de una variable.
Es especialmente 煤til cuando se comparan valores espec铆ficos.
Sintaxis
switch(variable) {
case valor1:
instrucciones;
break;
case valor2:
instrucciones;
break;
default:
instrucciones;
}
El break evita que el programa contin煤e ejecutando los siguientes casos.
Ejemplo
Programa que muestra el d铆a de la semana.
#include <stdio.h>
int main() {
int dia = 3;
switch(dia) {
case 1:
printf("Lunes\n");
break;
case 2:
printf("Martes\n");
break;
case 3:
printf("Miercoles\n");
break;
case 4:
printf("Jueves\n");
break;
case 5:
printf("Viernes\n");
break;
default:
printf("Dia no valido\n");
}
return 0;
}
Explicaci贸n
Si dia vale 3, el programa ejecuta:
case 3:
printf("Miercoles");
switch con m煤ltiples casos
A veces varios valores deben producir el mismo resultado.
Ejemplo: identificar si un d铆a es fin de semana.
#include <stdio.h>
int main() {
int dia = 6;
switch(dia) {
case 6:
case 7:
printf("Es fin de semana\n");
break;
default:
printf("Es un dia de semana\n");
}
return 0;
}
Si dia es 6 o 7, se ejecuta la misma instrucci贸n.
switch combinado con if
Dentro de un switch tambi茅n pueden utilizarse estructuras if.
Esto permite tomar decisiones m谩s complejas.
Ejemplo
#include <stdio.h>
int main() {
int opcion = 1;
int edad = 16;
switch(opcion) {
case 1:
if (edad >= 18) {
printf("Puedes entrar al evento\n");
}
else {
printf("No tienes la edad suficiente\n");
}
break;
case 2:
printf("Opcion de informacion\n");
break;
default:
printf("Opcion no valida\n");
}
return 0;
}
Comparaci贸n entre if y switch
| Estructura | Cu谩ndo usarla |
|---|---|
if | Cuando se comparan condiciones complejas |
if - else | Cuando hay dos posibles resultados |
if anidados | Cuando hay varias decisiones dependientes |
switch | Cuando se comparan muchos valores espec铆ficos |
Errores comunes en principiantes
1. Usar = en lugar de ==
Incorrecto:
if (numero = 5)
Correcto:
if (numero == 5)
2. Olvidar el break en switch
Si se olvida el break, el programa continuar谩 ejecutando los siguientes casos.
Importancia de las estructuras de decisi贸n
Las estructuras de decisi贸n permiten que los programas:
- reaccionen a la entrada del usuario
- controlen el flujo del programa
- implementen l贸gica en algoritmos
- resuelvan problemas del mundo real
Sin estructuras de decisi贸n, los programas ejecutar铆an siempre las mismas instrucciones, sin importar las condiciones.
Por eso, dominar if, if-else y switch es uno de los pasos m谩s importantes para aprender programaci贸n en C.