Skip to content

Estructuras de decisiones

La estructura de decisiones que vamos a estar aprendiendo serán if e if-else. Tenemos switch, sin embargo no se abarcaran aun.

Estructura básica if

La sentencia if nos ayuda a dar un control de flujo de la aplicación, siempre verificando una situación verdadera.

if basico

if basico

void main() {
  int valor1 = 4;
  int valor2 = 7;

  if (valor1 < valor2) {
    print("$valor1 < $valor2");
  }
  if (valor1 > valor2) {
    print("$valor1 > $valor2");
  }
  if (valor1 >= valor2) {
    print("$valor1 >= $valor2");
  }
  if (valor1 <= valor2) {
    print("$valor1 <= $valor2");
  }
  if (valor1 == valor2) {
    print("$valor1 == $valor2");
  }
  if (valor1 != valor2) {
    print("$valor1 != $valor2");
  }
}

Siempre que se cumpla una condición, se ingresa al bloque dentro de las llaves y todo el código escrito ahi, se ejecutara.

Estructura if-else

La palabra reservada else complementa al if, es en la única forma que lo vamos a encontrar. Esto se lee como, si cumple con la condición, actúa el bloque de if, de lo contrario hago lo que esta en el otro bloque.

void main() {
  int valor1 = 4;
  int valor2 = 7;

  if (valor1 < valor2) {
    print("$valor1 < $valor2");
  } else if (valor1 > valor2) {
    print("$valor1 > $valor2");
  } else if (valor1 >= valor2) {
    print("$valor1 >= $valor2");
  } else if (valor1 <= valor2) {
    print("$valor1 <= $valor2");
  } else if (valor1 == valor2) {
    print("$valor1 == $valor2");
  } else if (valor1 != valor2) {
    print("$valor1 != $valor2");
  }
}

Operador ternario

Es una simplificación de un if-else. Que solo puede ejecutar una acción.

tipo variable = comparación ? resultado_verdadero : resultado_falso;

operador ternario operador ternario

Comparación de operador ternario vs if-else

print("Cual es tu edad?");
int edad = int.parse(stdin.readLineSync(encoding: utf8)!);

String resultado = edad >= 18 ? "Ya eres mayor" : "Aun eres muy joven";
  String resultado2 = "";
  if (edad >= 18){
      resultado2 = "Ya eres mayor";
  }else{
       resultado2 = "Aun eres muy joven";
  }
print("Eres mayor : $resultado");
print("Eres mayor : $resultado2");

Concatenación de operador ternario

print("Escribe un texto para convertir a mayúscula o minúsculas");
String texto = stdin.readLineSync(encoding: utf8)!;
print("1)Minúsculas\t2)Mayúsculas");
int opt = int.parse(stdin.readLineSync(encoding: utf8)!);
String resultado = opt == 1 ? texto.toLowerCase():
                   opt == 2 ? texto.toUpperCase(): "Opcion no existe";

print(resultado == "Opcion no existe" ? resultado : "El nuevo texto: $resultado");

Ejemplos

  • Preguntar la edad, "Ya eres mayor de edad": "Aun eres muy joven"
  • Solicitar al usuario la cantidad de mascotas que tiene en casa, si no tiene o cuenta con hasta 3, se le manda el mensaje: "Te hacen falta más mascotas", de lo contrario el mensaje sera "Eres amante de los animales". (Usando exclusivamente if)
  • Verificar si un numero es "par" o "impar"
  • Dar 2 números e indicar cual es el menor de los 2, en caso que sean iguales debe indicar que son iguales
  • Dar 3 números e indicar cual es el menor de los 3, en caso que sean iguales debe indicar que son iguales
  • Calculadora del rectángulo,
    • 1.- perímetro
    • 2.- area
    • en caso que de otra opción indicar que "no existe la opción"

Ejercicios

If-else

  • Hacer una calculadora de áreas geométricas, las opciones son:
  • Área del cuadrado
  • Área del círculo
  • Área del triángulo
  • Con opción de salir del programa y al final imprimir el resultado con la frase "El área de la figura 'nombre' es"
  • Ley de ohm, solicitar la variable a calcular, solicitar los datos e imprimir el resultado con su respectiva unidad. La formula es \(I = \frac{V}{R}\)
  • Hacer una caja registradora, que reciba el valor del producto y al final entregue el costo total con IVA y sin IVA; es decir, En total es $18.35 y con IVA son $21.28, recordar que el IVA es del 16%

Operadores lógicos

  • Solicitar al usuario su promedio actual, en valor entero, el algoritmo debe tomar la decisión con basé al número ingresado, y dar un mensaje (ver la tabla)

    Rango de calificación Mensaje a imprimir
    0 a menor que 6 "lastima margarito"
    6 a menor que 7 "Aplícate"
    7 a menor que 8 "Apenitas y la libraste, metele papí"
    8 a menor que 9 "Bastante bien, puedes mejorar"
    9 a menor que 10 "muy bien amiguito, te ganaste la cheve!"
    Igual a 10 "Excelente, tu muy bien"
    Menor a 0 y mayor a 10 "Calificación no posible"
  • Cálculo de BMI (Indice de Masa Corporal) para peso y altura, indicando cual es tu BMI y en que nivel de obesidad te encuentras (Ver tabla). La formula es \(BMI = peso (kg) * estatura^2 (cm)\)

    IMC Nivel de peso
    Por debajo de 18.5 Bajo peso
    18.5 – 24.9 Normal
    25.0 – 29.9 Sobrepeso
    30.0 o más Obesidad
  • Mandar la letra del múltiplo o submultiple correspondiente, es decir, si el usuario ingresa el valor de 1,000, el valor que se debe desplegar por pantalla es la letra "K", si el usuario ingresa el valor de 0.02, se debe desplegar por pantalla la letra "m"

    Unidad Letra Valor
    pico p \(\times 10^{-12}\)
    nano n \(\times 10^{-9}\)
    micro u \(\times 10^{-6}\)
    mili m \(\times 10^{-3}\)
    unidad 1
    kilo K \(\times 10^{3}\)
    mega M \(\times 10^{6}\)
    giga G \(\times 10^{9}\)