📙 Condicionales#

Tabla de Contenido#

  • 1 - Instalar Java

  • 2 - Ejemplos Condicionales

    • 2.1 - Ejemplos if

    • 2.2 - Ejemplos else

    • 2.3 - Ejemplos else if

  • 3 - Ejemplos Switch Case

  • 4 - Ejercicios

Instalar Java#

Descargar el kernel

Ejecuta la siguiente celda. No la modifiques!

%%sh
wget -q https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.0.zip
unzip -q ijava-1.3.0.zip
python install.py

wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1
python install_ipc_proxy_kernel.py --kernel=java --implementation=ipc_proxy_kernel.py
Installed java kernel into "/usr/local/share/jupyter/kernels/java"
e2732061ad19c1afa4a33a58cb8f18a9-b6cff2bf09b6832344e576ea1e4731f0fb3df10c/install_ipc_proxy_kernel.py
e2732061ad19c1afa4a33a58cb8f18a9-b6cff2bf09b6832344e576ea1e4731f0fb3df10c/ipc_proxy_kernel.py
Moving java kernel from /usr/local/share/jupyter/kernels/java...
Wrote modified kernel.json for java_tcp in /usr/local/share/jupyter/kernels/java_tcp/kernel.json
Installing the proxy kernel in place of java in /usr/local/share/jupyter/kernels/java
Installed proxy kernelspec: {"argv": ["/usr/bin/python3", "/usr/local/share/jupyter/kernels/java/ipc_proxy_kernel.py", "{connection_file}", "--kernel=java_tcp"], "env": {}, "display_name": "Java", "language": "java", "interrupt_mode": "message", "metadata": {}}
Proxy kernel installed. Go to 'Runtime > Change runtime type' and select 'java'
/content/install.py:164: DeprecationWarning: replace is ignored. Installing a kernelspec always replaces an existing installation
  install_dest = KernelSpecManager().install_kernel_spec(

Instrucciones para activar el kernel

Dirigite a Entorno de ejecución > Cambiar tipo de entorno de ejecución > Elige la opción Java > Da click en Guardar

Importar Librerias#

// Libreria para usar potencia y otras funciones matemáticas
import java.lang.Math;

// Libreria para usar el objeto Scanner (leer variables)
import java.util.Scanner;

Ejemplos Condicionales#

Ejemplos if#

Ejemplo 1:#

Realizar un programa que me diga si un numero \(X\) es mayor que \(5\)

// Variable scn de tipo scanner
Scanner scn = new Scanner(System.in);

// Leer número
System.out.println("Ingrese un número:");
float x = scn.nextFloat();

// Acción
if (x > 5) {
    System.out.println("x es mayor que 5");
}
Ingrese un número:
3
x es menor que 5

Ejemplo 2:#

Realizar un programa que me diga si una persona es mayor de edad e imprima el mensaje "Mientras usted viva en esta casa se hará lo que yo diga", en caso de que viva en la casa de sus padres y sea mayor de edad. Debe pedir la edad del usuario y preguntar si vive o no en la casa de sus padres.

Implementación de if anidados. Los if anidados son estructuras que establecen condiciones consecutivas donde se encandenan, esto tiene diferentes aplicaciones desde hacer validaciones hasta generar filtros de condición.

// Variable para leer la edad
Scanner scn = new Scanner(System.in);

// Variable para leer si o no
Scanner scin = new Scanner(System.in);

// Leer edad
System.out.println("Ingrese la edad:");
int edad = scn.nextInt();

// Leer si o no
System.out.println("Vive en casa (si/no):");
String casa = scin.nextLine();

// Acción con if anidados
if (edad>0) {
  if(edad>=18) {
    System.out.println("Es mayor de edad");
    if (casa.equals("si")) {
      System.out.println("Mientras usted viva en esta casa se hará lo que yo diga");
    }
    else{
      System.out.println("puede hacer lo que le de la gana en su casa");
      }
  }
  else{
    System.out.println("usted es un bebe");
  }
}
else{
  System.out.println("aprenda a escribir edades");
}
Ingrese la edad:
19
Vive en casa (si/no):
si
Mientras usted viva en esta casa se hará lo que yo diga

Ejemplos else#

Ejemplo 3:#

if anidado incorporando else

Realizar un programa donde se le pida a un usuario que ingrese la temperatura actual de forma que si la temperatura es mayor a \(15°\) Celsius pase a la siguiente condición, donde se le pregunta si es mayor a \(25°\) Celsius, en caso de ser así, imprimir el mensaje "A la playa", de lo contrario imprimir A la montaña!.

// Variable para leer la temperatura
Scanner scn = new Scanner(System.in);

// Leer la temperatura
System.out.println("Ingrese el valor de la temperatura");
float temperatura = scn.nextFloat();

if (temperatura > 15) {
  if (temperatura > 25) {
    // Si la temperatura es mayor que 25 ...
    System.out.println("A la playa!");
    } else {
      System.out.println("A la montaña!");
    }
}
Ingrese el valor de la temperatura
10

Ejemplo 4:#

Realizar un programa que pida por teclado 2 números enteros diferentes y compare e imprima el mayor de ellos.

// Se pueden definir n variables del mismo tipo en la misma linea:
int num1, num2;

// Variable para leer enteros
Scanner entrada = new Scanner (System.in);

// Leer numeros enteros
System.out.println("Ingrese el primer numero: ");
num1 = entrada.nextInt();
System.out.println("Ingrese el segundo numero: ");
num2 = entrada.nextInt();

// Comparar numeros
if(num1 > num2){
  System.out.println("El número mayor es: " + num1);
} else {
  System.out.println("El número mayor es: " + num2);
}
Ingrese el primer numero: 
4
Ingrese el segundo numero: 
5
El número mayor es: 5

Ejemplo 5:#

Realizar un programa que simule un inicio de sesión solicitando el nombre de usuario y contraseña. Mostrar un mensaje en pantalla si el inicio de sesión es correcto o incorrecto.

// Definiendo variables String en la misma linea:
String nombre, clave;

// Variable para leer String
Scanner entrada = new Scanner(System.in);

// Leer Usuario y contraseña
System.out.print("Ingrese Nombre de usuario: ");
nombre = entrada.nextLine();
System.out.print("Ingrese Clave de usuario: ");
clave = entrada.nextLine();

// Validar entradas
if(nombre.equals("Juan") && clave.equals("123456")) {
  System.out.println("Bienvenido al Sistema");
} else {
  System.out.println("Nombre de Usuario o Contraseña Incorrecto");
}
Ingrese Nombre de usuario: Juan 
Ingrese Clave de usuario: 123456
Nombre de Usuario o Contraseña Incorrecto

Ejemplo 6:#

Una farmacia desea un programa para ingresar el valor de compra y calcular lo siguiente: si el pago se efectúa al "contado", calcular un descuento del \(5%\); pero si el pago es con "tarjeta" se incrementa un recargo del \(3%\) al valor de compra. Calcular y visualizar el descuento o recargo según sea el caso y el total a pagar de la compra.

// Definir variables double en una sola linea:
double valor, descuento, recargo, total;

// Definir String
String tipo_pago;

// Variable para leer String
Scanner entrada = new Scanner(System.in);

// Leer variables
System.out.print("Ingrese el valor de la compra: ");
valor = entrada.nextDouble();
System.out.print("Ingrese tipo de pago: ");
tipo_pago = entrada.next();
tipo_pago =tipo_pago.toLowerCase();

// Descuento y recargo
descuento = 0.05*valor;
recargo = 0.03*valor;

if (tipo_pago.equals("contado")) {
  System.out.println("El descuento es: " + descuento);
  total = valor - descuento;
  System.out.println("El total es: " + total);
} else {
  System.out.println("El recargo es: " + recargo);
  total = valor + recargo;
  System.out.println("El total es: " + total);
}
Ingrese el valor de la compra: 100
Ingrese tipo de pago: contado
El descuento es: 5.0
El total es: 95.0

Ejemplos else if#

Ejemplo 7:#

else if es una alternativa al uso de los if anidados y la estructura else, este se activa como una condición alternativa si el resultado es falso en la condición inicial, esta funciona como un else pero iterativo y consecutivamente se cierra con else.

Realizar un programa que le pregunte al usuario la cantidad de satelites que tiene Jupiter y valide e imprima un mensaje si ha acertado o no.

// Variable para leer String
Scanner scn = new Scanner(System.in);

// Leer variable
System.out.println("¿Cuantos satelites tiene Jupiter");
int C = scn.nextInt();

// Validar e imprimir mensaje
if (C == 79) {
	System.out.println("Felicidades, has acertado la pregunta :)");
} else if (C != 79) {
	System.out.println("Lo siento pero no es la respuesta correcta :(");
}
¿Cuantos satelites tiene Jupiter
79
Felicidades, has acertado la pregunta :)

Ejemplo 8:#

Realizar un programa que ordene 3 números de mayor a menor. Lea los numeros por teclado.

// Definir variables (numeros enteros)
int n1,n2,n3;

// Leer variables
Scanner entrada=new Scanner(System.in);
System.out.print("Ingrese el primer numero: ");
n1 = entrada.nextInt();
System.out.print("Ingrese el segundo numero: ");
n2 = entrada.nextInt();
System.out.print("Ingrese el tercer numero: ");
n3 = entrada.nextInt();

// Lógica:
if ((n1>n2) && (n2>n3)) {
    System.out.println("El orden es: " + n1 + ", " + n2 + ", " + n3);
} else if ((n1>n3) && (n3>n2)) {
    System.out.println("El orden es: " + n1 + ", " + n3 + ", " + n2);
} else if ((n2>n1) && (n1>n3)) {
    System.out.println("El orden es: " + n2 + ", " + n1 + ", " + n3);
} else if ((n2>n3) && (n3>n1)) {
    System.out.println("El orden es: " + n2 + ", " + n3 + ", " + n1);
} else if ((n3>n2) && (n2>n1)) {
    System.out.println("El orden es: " + n3 + ", " + n2 + ", " + n1);
} else {
    System.out.println("El orden es: " + n3 + ", " + n1 + ", " + n2);
}
Ingrese el primer numero: 3
Ingrese el segundo numero: 3
Ingrese el tercer numero: 3
El orden es: 3, 3, 3

Ejemplo 9:#

Realice un programa que pida al usuario una temperatura.

  • Si la temperatura es mayor a \(25\), imprima "A la playa!"

  • Si la temperatura es mayor a \(15\) y menor a \(25\), imprima "A la montaña!"

  • Si la temperatura es menor a \(5\), imprima "A esquiar!"

En caso contario, imprimir "A descansar... zZz"

// Variable para leer temperatura
Scanner scn = new Scanner(System.in);

// Leer temperatura
System.out.println("Ingrese la temperatura");
double temperatura = scn.nextDouble();

// Lógica
if (temperatura > 25) {
    // Si la temperatura es mayor que 25 ...
    System.out.println("A la playa!");
} else if (temperatura > 15) {
    // si es mayor que 15 y no es mayor que 25 ..
    System.out.println("A la montaña!");
} else if (temperatura < 5) {
    // si es menor que 5 y esta nevando y no es mayor que 15 ni mayor que 25
    System.out.println("A esquiar!");
} else {
    // si la tempera  no es mayor que 25 ni que 15 ni menor que 5
    System.out.println("A descansar... zZz");
}
Ingrese la temperatura
30
A la playa!
A la montaña!

Ejemplo 10:#

Realice un programa que al introducir el Coeficiente Intelectual (IQ, por sus siglas en inglés) del usuario lo clasifique en Bajo, Medio, Normal o Alto.

// Variable para leer IQ
Scanner lectura = new Scanner (System.in);

// Leer IQ
System.out.println("Introduce el Coeficiente Intelectual. ");
int iq = lectura.nextInt();

// Lógica
if (iq <= 79) {
    System.out.println("IQ Bajo");
} else if (iq <= 89 && iq > 79) {
    System.out.println("IQ Medio");
} else if (iq >= 90 && iq < 110) {
    System.out.println("IQ Normal");
} else if (iq >= 110) {
    System.out.println("IQ Alto");
}
Introduce el Coeficiente Intelectual. 
89
IQ Medio

Ejemplo 11:#

Realizar un programa que cuente los días que faltan para el fin de semana. Tenga en cuenta que:

Domingo = 1 (Fin de Semana)
Lunes = 2
Martes = 3
Miercoles = 4
Jueves = 5
Viernes = 6
Sabado = 7 (Fin de Semana)
// Variable para leer dia de la semana
Scanner scn = new Scanner(System.in);

// Leer dia
System.out.println("Ingrese el dia de la semana: ");
int dia = scn.nextInt();

// Variable para contar los dias que faltan
int diasHastaFinSemana = 0;

// Lógica
if (dia > 1 && dia < 7) {
    if (dia < 6) {
        diasHastaFinSemana++;
        if (dia < 5) {
           diasHastaFinSemana++;
           if (dia < 4) {
                diasHastaFinSemana++;
                if (dia < 3) {
                    diasHastaFinSemana++;
                }
            }
        }
    }
    System.out.println("Dias restantes hasta el fin de semana: " + diasHastaFinSemana);
} else if (dia == 1 || dia == 7) {
    System.out.println("Fin de semana");
} else {
    System.out.println("La semana solo tiene 7 dias");
}
Ingrese el dia de la semana: 
9
La semana solo tiene 7 dias

Ejemplos Switch Case#

Ejemplo 12:#

Realizar un programa que pida al usuario un tipo de vehiculo (Carro, Camion, Moto) y que imprima a que hora del dia puede circular dependiendo del tipo ingresado. Si el usuario ingresa un tipo de vehiculo distinto debe mostrar un mensaje indicando el error.

// Variable para leer el tipo de vehiculo
Scanner scn = new Scanner(System.in);

// Leer el vehiculo (String)
System.out.println("En que vehiculo se desplaza (Carro/Camion/Moto)");
String tipoVehiculo = scn.nextLine();

// Lógica
switch (tipoVehiculo) {
   case "Carro":
      System.out.println("Puedes pasar de 00:00 a 08:00");
      break;
    case "Camion":
      System.out.println("Puedes pasar de 08:00 a 16:00");
      break;
    case "Moto":
      System.out.println("Puedes pasar de 16:00 a 24:00");
      break;
    default:
      System.out.println("No se puede pasar con un " + tipoVehiculo);
      break;
}
En que vehiculo se desplaza (Carro/Camion/Moto)
Carro
Puedes pasar de 00:00 a 08:00

Ejemplo 13:#

Realizar un programa que simule el juego “Piedra, Papel o Tijera”. El usuario debe ingresar Piedra, Papel o Tijera, y competirá con la computadora.

El usuario debe ingresar un numero entero (1 = Piedra, 2 = Papel, 3 = Tijera) e imprimir uno de los tres posibles resultados (ganar, perder o empatar).

System.out.println("----------- Piedra, Papel o Tijera -----------");

// Math.random() genera un numero decimal al azar entre 0.0 y 1.0
// la expresión (int) al inicio redondea el numero (lo convierte a entero)
int seleccionCompu = (int)(Math.random() * 3) + 1; // Variable de tipo entero (1, 2 o 3) al azar
System.out.println("La computadora ya escogió...");

// Leer opción del usuario
Scanner teclado = new Scanner(System.in);
System.out.println("Ingrese su opción [1=Piedra, 2=Papel, 3=Tijera]: ");
int seleccionUsuario = teclado.nextInt();

// Lógica
System.out.println("La computadora habia escogido: ");
switch (seleccionCompu) {
    case 1:
        System.out.println("Piedra");
        switch (seleccionUsuario) {
            case 1:
                System.out.println("Empate!");
                break;
            case 2:
                System.out.println("Usted gana!");
                break;
            case 3:
                System.out.println("La computadora gana!");
                break;
            default:
                System.out.println("Su opción no es valida, vuelva a intentarlo");
        }
        break;

    case 2:
        System.out.println("Papel");
        switch (seleccionUsuario) {
            case 1:
                System.out.println("La computadora gana!");
                break;
            case 2:
                System.out.println("Empate!");
                break;
            case 3:
                System.out.println("Usted gana!");
                break;
            default:
                System.out.println("Su opción no es valida, vuelva a intentarlo");
        }
        break;

    case 3:
        System.out.println("Tijera");
        switch (seleccionUsuario) {
            case 1:
                System.out.println("Usted gana!");
                break;
            case 2:
                System.out.println("La computadora gana!");
                break;
            case 3:
                System.out.println("Empate!");
                break;
            default:
                System.out.println("Su opción no es valida, vuelva a intentarlo");
        }
        break;
}
----------- Piedra, Papel o Tijera -----------
La computadora ya escogió...
Ingrese su opción [1=Piedra, 2=Papel, 3=Tijera]: 
2
La computadora habia escogido: 
Papel
Empate!

Ejemplo 14:#

Hacer un programa que simule un cajero automático con un saldo inicial de \(1000\) dólares, con el siguiente menú de opciones:

1. Ingresar dinero a la cuenta.
2. Retirar dinero de la cuenta.
3. Salir.

Para cada opción debe imprimir un mensaje. Si el saldo a retirar es mayor al que tiene en la cuenta tambien debe indicarlo en pantalla.

// Definir variables
final int saldo_inicial = 1000;
int opcion;
double ingreso, saldoActual, retiro;

// Mostrar menú
System.out.println("1. Ingresar dinero a la cuenta");
System.out.println("2. Retirar dinero de la cuenta.");
System.out.println("3. Salir.");

// Variable de tipo Scanner para leer otras variables
Scanner entrada = new Scanner(System.in);

// Leer la opción (1, 2 o 3)
System.out.print("Ingresar la opción: ");
opcion = entrada.nextInt();

// Lógica
switch (opcion) {
    case 1:
        System.out.println("Ingrese la cantidad que desea ingresar en la cuenta: ");
        ingreso = entrada.nextDouble();
        saldoActual = saldo_inicial + ingreso;
        System.out.println("El saldo actual es: " + saldoActual);
        break;
    case 2 :
        System.out.print("Ingrese la cantidad que desea retirar: ");
        retiro = entrada.nextDouble();
        if (retiro <= saldo_inicial) {
            saldoActual = saldo_inicial - retiro;
            System.out.println("Dinero en la cuenta: " + saldoActual);
        } else {
            System.out.println("No cuenta con el saldo suficiente");
        }
        break;
    case 3:
        System.out.println("Hasta luego...");
        break;
    default:
        System.out.println("Opción no valida, intente de nuevo.");
}
1. Ingresar dinero a la cuenta
2. Retirar dinero de la cuenta.
3. Salir.
Ingresar la opción: 1
Ingrese la cantidad que desea ingresar en la cuenta: 
12300
El saldo actual es: 13300.0

Ejercicios#

Ejercicio 1:#

Realizar un programa que determine si un estudiante ha aprobado o no un examen. Para aprobar el examen, el estudiante debe obtener una calificación de al menos \(60\) en el examen escrito y una calificación de al menos \(80\) en el examen oral. Además, si la calificación total del examen (promedio de las calificaciones) es superior o igual a \(90\), el estudiante recibe una mención honorífica.

  • Nota: Debe ingresar como minimo 4 estudiantes con su respectivas notas.

Ejercicio 2:#

Tienes una tienda de ropa y deseas calcular el precio final de una compra de un cliente. La tienda ofrece un descuento del \(10\%\) en todas las compras que superen los \(\$100\), y un descuento adicional del \(5\%\) si el cliente tiene una tarjeta de membresía de la tienda. Además, la tienda cobra una tarifa de envío de \(\$5\) para todas las compras que se envían por correo. Si el cliente gasta más de \(\$200\), la tienda cubre el costo de envío.

Ejercicio 3:#

Debes crear un programa de gestión de personal que almacena la información de los empleados en una base de datos. Cada empleado tiene un nombre, una edad, un salario y un cargo. La empresa tiene tres cargos diferentes: "gerente", "supervisor" y "empleado". El programa debe imprimir una carta para cada empleado, que depende de su cargo y su salario. Si el salario es mayor que \(\$50000\), la carta debe ser de felicitación. Si el salario es menor o igual a \(\$50000\), la carta debe ser de agradecimiento. La carta también debe mencionar el cargo del empleado.

  • Nota: Debe ingresar como minimo 5 empleados con sus respectivos datos.