🤔 Condicionales
Los condicionales son como las reglas de calificación en la escuela: SI tu nota es mayor o igual a 90, obtienes una A. SI es mayor o igual a 70, una B. SINO, repruebas. Los condicionales permiten que tu programa tome decisiones basadas en condiciones.
Estructura si: Tomar Decisiones
La estructura 'si' ejecuta código solo cuando se cumple una condición. Como cuando el profesor dice: 'Si tu nota es 90 o más, tienes una A'.
si condicion ... código ...variable nota = 95
si nota >= 90 {
mostrar "¡Excelente! Tienes una A" // ¡Excelente! Tienes una A
}
variable asistencia = 80
si asistencia >= 75 {
mostrar "Cumples con la asistencia mínima" // Cumples con la asistencia mínima
mostrar "Puedes presentar el examen final" // Puedes presentar el examen final
}
variable tareaEntregada = verdadero
si tareaEntregada {
mostrar "Tarea registrada correctamente" // Tarea registrada correctamente
}- La condición debe evaluar a verdadero o falso
- Si la condición es verdadera, se ejecuta el código dentro de las llaves
- Si la condición es falsa, se salta todo el bloque
- Las llaves son obligatorias, incluso para una sola línea
- Puedes poner múltiples líneas de código dentro del bloque
Estructura si-sino: Dos Caminos
A veces necesitas hacer algo cuando la condición es verdadera, y algo diferente cuando es falsa. Como: 'Si aprobaste, felicitaciones. Sino, debes recursar'.
si condicion ... código ... sino ... código ...variable nota = 65
si nota >= 70 {
mostrar "¡Aprobaste! Felicitaciones"
mostrar "Pasa a la siguiente materia"
} sino {
mostrar "No aprobaste" // No aprobaste
mostrar "Debes recursar la materia" // Debes recursar la materia
}
variable asistencia = 60
variable minimoAsistencia = 75
si asistencia >= minimoAsistencia {
mostrar "Asistencia suficiente"
} sino {
mostrar "Asistencia insuficiente" // Asistencia insuficiente
mostrar "No puedes rendir el examen" // No puedes rendir el examen
}- Exactamente UNO de los dos bloques se ejecuta, nunca ambos
- Si la condición es verdadera → ejecuta el bloque 'si'
- Si la condición es falsa → ejecuta el bloque 'sino'
- Útil cuando tienes dos caminos mutuamente excluyentes
- Piensa en 'sino' como 'en cualquier otro caso'
Estructura si-sino si: Múltiples Rangos
Cuando tienes múltiples rangos o categorías, usas 'si-sino si'. Como el sistema de calificaciones: A para 90 o más, B para 80-89, C para 70-79, F para menos de 70.
si condicion1 ... sino si condicion2 ... sino ...variable nota = 85
si nota >= 90 {
mostrar "Calificación: A - Excelente"
} sino si nota >= 80 {
mostrar "Calificación: B - Muy Bueno" // Calificación: B - Muy Bueno
} sino si nota >= 70 {
mostrar "Calificación: C - Bueno"
} sino si nota >= 60 {
mostrar "Calificación: D - Suficiente"
} sino {
mostrar "Calificación: F - Reprobado"
}
variable promedio = 92
si promedio >= 95 {
mostrar "Honor Roll - Mención de Honor"
} sino si promedio >= 85 {
mostrar "Cuadro de Honor" // Cuadro de Honor
} sino si promedio >= 70 {
mostrar "Aprobado"
} sino {
mostrar "Necesita mejorar"
}- Se evalúan las condiciones en orden, de arriba hacia abajo
- Se ejecuta el PRIMER bloque cuya condición sea verdadera
- Una vez que se ejecuta un bloque, se salta el resto
- El bloque 'sino' final es opcional (caso por defecto)
- Útil para rangos numéricos o múltiples categorías
- Importante: el orden importa. Pon las condiciones más específicas primero
Condicionales Anidados: Decisiones Dentro de Decisiones
Puedes poner condicionales dentro de otros condicionales. Como: 'Si aprobaste, ENTONCES si tu nota es mayor a 95, obtienes beca'.
variable nota = 88
variable asistencia = 90
variable entregaTrabajos = verdadero
si nota >= 70 {
mostrar "¡Aprobaste la materia!" // ¡Aprobaste la materia!
si nota >= 90 {
mostrar "Calificación sobresaliente"
si asistencia >= 90 {
mostrar "¡Eres candidato a beca!"
}
} sino si nota >= 80 {
mostrar "Muy buen desempeño" // Muy buen desempeño
}
} sino {
mostrar "Reprobaste"
si entregaTrabajos {
mostrar "Puedes hacer un trabajo de recuperación"
} sino {
mostrar "Debes recursar la materia completa"
}
}- Puedes anidar 'si' dentro de otros 'si'
- Cada nivel de anidamiento verifica una condición adicional
- Mantén buena indentación para que sea legible
- No anides demasiado: más de 3 niveles se vuelve confuso
- A veces es mejor usar operadores lógicos (y, o) que anidar
Usando Operadores en Condiciones
Puedes usar operadores de comparación y operadores lógicos (y, o, !) para crear condiciones más complejas.
variable notaExamen = 85
variable notaTrabajos = 90
variable asistencia = 95
si notaExamen >= 70 y notaTrabajos >= 70 {
mostrar "Aprobaste ambas partes" // Aprobaste ambas partes
}
si notaExamen >= 90 o notaTrabajos >= 90 {
mostrar "Tienes al menos una nota excelente" // Tienes al menos una nota excelente
}
variable entregaTarde = falso
si !entregaTarde {
mostrar "Entrega a tiempo - sin penalización" // Entrega a tiempo - sin penalización
}
si notaExamen >= 80 y notaTrabajos >= 80 y asistencia >= 90 {
mostrar "¡Estudiante destacado!" // ¡Estudiante destacado!
}
variable notaFinal = (notaExamen + notaTrabajos) / 2
si notaFinal >= 70 y asistencia >= 75 {
mostrar "Cumples todos los requisitos para aprobar" // Cumples todos los requisitos para aprobar
} sino {
mostrar "No cumples los requisitos mínimos"
}- Operadores de comparación: mayor, menor, igual, diferente
- Operador 'y': Ambas condiciones deben ser verdaderas
- Operador 'o': Al menos una condición debe ser verdadera
- Operador '!': Invierte verdadero ↔ falso
- Puedes combinar múltiples operadores
- Usa paréntesis para agrupar condiciones complejas
Sistema Completo de Calificaciones
Veamos un ejemplo completo que combina todo: calcular la nota final, determinar si aprueba, asignar letra de calificación, y verificar elegibilidad para honores.
variable notaExamen1 = 85
variable notaExamen2 = 90
variable notaTrabajos = 88
variable asistencia = 92
variable participacion = 95
variable promedioExamenes = (notaExamen1 + notaExamen2) / 2
variable notaFinal = (promedioExamenes * 0.5) + (notaTrabajos * 0.3) + (participacion * 0.2)
mostrar "=== REPORTE DE CALIFICACIONES ===" // === REPORTE DE CALIFICACIONES ===
mostrar "Promedio exámenes: " + promedioExamenes // Promedio exámenes: 87.5
mostrar "Trabajos: " + notaTrabajos // Trabajos: 88
mostrar "Participación: " + participacion // Participación: 95
mostrar "Nota final: " + notaFinal // Nota final: 89.5
mostrar "" //
si notaFinal >= 70 y asistencia >= 75 {
mostrar "Estado: APROBADO" // Estado: APROBADO
mostrar "" //
si notaFinal >= 90 {
mostrar "Calificación: A - Excelente"
si asistencia >= 90 y participacion >= 90 {
mostrar "*** MENCIÓN DE HONOR ***"
}
} sino si notaFinal >= 80 {
mostrar "Calificación: B - Muy Bueno" // Calificación: B - Muy Bueno
si asistencia >= 90 {
mostrar "Elegible para Cuadro de Honor" // Elegible para Cuadro de Honor
}
} sino {
mostrar "Calificación: C - Bueno"
}
} sino {
mostrar "Estado: REPROBADO"
mostrar ""
si notaFinal >= 60 {
mostrar "Puedes presentar examen de recuperación"
} sino si asistencia < 75 {
mostrar "Asistencia insuficiente"
mostrar "Debes recursar la materia"
} sino {
mostrar "Debes recursar la materia"
}
}Este sistema completo incluye:
- Cálculo de promedios ponderados
- Verificación de requisitos (nota Y asistencia)
- Asignación de calificación por rangos (A, B, C)
- Condicionales anidados para honores
- Manejo de casos de reprobación
- Uso de operadores lógicos (y)
- Así funcionan los sistemas de calificaciones reales
Consejos y Buenas Prácticas
Recomendaciones para escribir condicionales claros y efectivos.
variable nota = 85
// Forma clara y organizada
si nota >= 90 {
mostrar "Excelente"
} sino si nota >= 70 {
mostrar "Aprobado" // Aprobado
} sino {
mostrar "Reprobado"
}
// Usa variables con nombres descriptivos
variable aprobado = nota >= 70
si aprobado {
mostrar "Has aprobado" // Has aprobado
}
// Usa constantes para valores fijos
variable notaMinima = 70
si nota >= notaMinima {
mostrar "Cumple el mínimo" // Cumple el mínimo
}- Usa nombres de variables descriptivos: notaMinima, aprobado
- Guarda condiciones complejas en variables para claridad
- Ordena condiciones de mayor a menor en rangos numéricos
- Mantén la indentación consistente
- Usa constantes para valores que no cambian (ej: NOTA_MINIMA = 70)
- Evita anidar más de 3 niveles
- Evita condiciones muy largas (usa variables intermedias)
- Si tienes muchos 'sino si', considera usar 'elegir' más adelante