Clase 2

También podría gustarte

Está en la página 1de 35

Ciclo 2: Programación Básica

Sesión 2:
Condicionales y funciones

Programa Ciencias de la Computación e Inteligencia Artificial


Escuela de Ciencias Exactas e Ingeniería
Universidad Sergio Arboleda
Bogotá
Contenido

• Condicional IF.
• Condicional múltiple IF-ELSE.
• Condicionales enlazados.
• Manejo de casos SWITCH.
• Funciones en Java.
• Ejercicios
Condicional IF
Condicional IF
Permite ejecutar un bloque de instrucciones si una
condición se cumple.

La condición es de carácter booleano.

Por ejemplo:
if (x > 0)
if (20 == x)
if (30 != x)
if ((x<10)&&(x>2))

El bloque puede contener cualquier cantidad de código.


Condicional IF
int x = 0; Bloque previo
double y = 1.1;

if (x > y) { Condición Condicional IF


System.out.println(“x es mayor que y”); Bloque

int z = 1000; Bloque siguiente


double a = x+1;

Nota: Con esta estructura, si la condición es falsa, no se ejecuta nada


del IF, se continúa al bloque siguiente.
Ejemplo IF
Programa que saluda de vuelta al usuario.

Lectura de una variable de tipo String del usuario.

Si la entrada dada es el saludo “Hola Mundo”.

Entonces el programa saluda de vuelta con otro “Hola Usuario”.

Si la entrada es diferente, no sucede nada.

Nota: La función de lectura sc.nextLine() retorna un String directamente.


Solución al ejemplo
import java.util.Scanner; 1. Librerías necesarias.

class Main {
2. Clase “main”.
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);


3. Lectura entradas.
String entrada = sc.nextLine();

if (entrada.equals(“Hola Mundo”)){
System.out.println(“Hola usuario”); 4. Condicional IF
}
}
}

Nota: Recordar siempre los punto y coma (;).


La función .equals() sirve para comparar dos String.
El comparador lógico doble igual (==) NO funciona con Strings.
Condicional múltiple
IF-ELSE
Condicional múltiple IF-ELSE
Permite ejecutar un bloque de instrucciones si una
condición se cumple y un bloque diferente si no se
cumple.

La condición funciona igual que la estructura del IF solo.

Uno de los dos bloques va a ser ejecutado, pero nunca


ambos.

Representación gráfica del condicional


(diagrama de flujo).
Condicional IF-ELSE
int x = 0; Bloque previo
double y = 1.1;

if (x == y) { Condición

System.out.println(“x es igual a y”); Bloque Verdadero

}else{ Condicional IF-ELSE

System.out.println(“x NO es igual a y”); Bloque Falso

int z = 1000; Bloque siguiente


double a = x+1;
Ejemplo IF-ELSE

Programa que dice cuál de dos números es mayor.

Lectura de dos variables (A y B) enteras (int) ingresadas por el usuario.

Caso 1: Si A es mayor imprimir el mensaje “A es mayor”.

Caso 2: Si B es mayor o igual imprimir el mensaje “B es mayor o igual”.


Solución al ejemplo
import java.util.Scanner; 1. Librerías necesarias.

class Main {
2. Clase “main”.
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);


int A = Integer.parseInt(sc.nextLine()); 3. Lectura entradas.
int B = Integer.parseInt(sc.nextLine());

if (A > B){ 4. Condicional IF, bloque


System.out.println(“A es mayor”); verdadero.
}else{
System.out.println(“B es mayor o igual”); 5. Condicional IF, bloque
} falso.
}
}

Nota: Si no se ingresan números enteros, generará un error.


Condicionales anidados
Condicionales enlazados
Más de dos posibles resultados, se utilizan varios IF encapsulados.

Nota: El bloque falso se ejecuta cuando ninguna de las condiciones se


cumple.
Condicionales enlazados
int x = 20; Bloque previo

if (x > 100) { Condición 1

System.out.println(“x es mayor que 100”); Bloque 1


}else if (x > 50){ Condición 2
Condicional enlazado
System.out.println(“x es mayor que 50 y menor que 100”); Bloque 2

} else if (x > 20){ Condición 3

System.out.println(“x es mayor que 20 y menor que 50”); Bloque 3

}else{
System.out.println(“x es menor que 20”); Bloque falso
}

System.out.println(“FIN”); Bloque siguiente


Nota: Es importante notar que las condiciones se revisar en el orden dado.
Ejemplo IF enlazado

Programa que opera los números 20 y 66.

Lectura de un String que determina qué operación se va a realizar.

Caso 1: Si la entrada es “Sumar”, se imprime el resultado de la suma.

Caso 2: Si la entrada es “Restar”, se imprime el resultado de la resta.

Caso 3: Si la entrada es “Multiplicar”, se imprime el resultado de la multiplicación.

Caso sobrante: Si la entrada es diferente a las opciones dada, se imprime “Operación


desconocida”.
Solución al ejemplo
import java.util.Scanner; 1. Librerías necesarias.

class Main {
2. Clase “main”.
public static void main(String[] args) {

Scanner sc = new Scanner(System.in); 3. Lectura entradas.


String entrada = sc.nextLine();
if (entrada.equals(“Sumar”)){
4. Condicional IF, bloque 1.
System.out.println(“20 + 66 = 86”);
}else if (entrada.equals(“Restar”)){
System.out.println(“20 – 66 = -46”); 5. Condicional IF, bloque 2.
}else if (entrada.equals(“Multiplicar”)){
System.out.println(“20 * 66 = ”); 6. Condicional IF, bloque 3.
}else{
5. Condicional IF, bloque
System.out.println(“Operación desconocida”);
falso.
}
}
}
Manejo de casos
SWITCH
SWITCH
El flujo del SWITCH es el mismo que los condicionales enlazados.

La estructura SWITCH se usa cuando las condiciones comparan una sola variable con un
grupo de posibles valores.

Nota: En el SWITCH, el bloque falso se conoce como el bloque por


default.
Estructura con IF enlazados
int x = 20; Bloque previo

if (x == 100) { Condición 1

System.out.println(“x es igual a 100”); Bloque 1


}else if (x == 50){ Condición 2
Condicional enlazado
System.out.println(“x es igual a 50”); Bloque 2

} else if (x == 20){ Condición 3

System.out.println(“x es iguala 20”); Bloque 3

}else{
System.out.println(“x es otro número”); Bloque falso
}

System.out.println(“FIN”); Bloque siguiente


Estructura con SWITCH
int x = 20; Bloque previo

switch (x) { Se define la variable a comparar

case 100: Caso 1: que x sea 100


System.out.println(“x es igual a 100”);
break;
Bloque 1

SWITCH
case 50: Condición 2
System.out.println(“x es igual a 50”);
break; Bloque 2

case 20: Condición 3


System.out.println(“x es igual a 20”); Bloque 3
break;

default:
System.out.println(“x es igual a 20”);
Bloque falso/default
break;
}
Ejemplo SWITCH

Programa que opera los números 20 y 66.

Lectura de un String que determina qué operación se va a realizar.

Caso 1: Si la entrada es “Sumar”, se imprime el resultado de la suma.

Caso 2: Si la entrada es “Restar”, se imprime el resultado de la resta.

Caso 3: Si la entrada es “Multiplicar”, se imprime el resultado de la multiplicación.

Caso sobrante: Si la entrada es diferente a las opciones dadas, se imprime “Operación


desconocida”.
Solución al ejemplo
import java.util.Scanner; 1. Librerías necesarias.
class Main {
public static void main(String[] args) {
2. Clase “main”.
Scanner sc = new Scanner(System.in);
3. Lectura entrada (operación) y
String entrada = sc.nextLine();
int a = 20;
creación de variables iniciales.
int b = 66;
switch (entrada){
case "Sumar":
4. Condicional SWITCH, bloque 1.
System.out.println(A+B);
break;
case "Restar":
System.out.println(A-B); 5. Bloque 2.
break;
case "Multiplicar":
System.out.println(A*B); 6. Bloque 3.
break;
default:
System.out.println("Operación desconocida."); 7. Bloque falso/Default.
break;
}
} }
Funciones en Java
Funciones en Java
Bloque de código

Recibe información de entrada (según la definición de la función).

Entrega información de salida (según la definición de la función).

La cantidad y tipo de datos de entrada están predefinidos en todas las funciones.

La cantidad y tipo de datos de salida están predefinidos en todas las funciones.

Se puede reutilizar cuantas veces se quiera (útil para reciclar código).


Estructura de las funciones
Estructura de una función ejemplo con 2 entradas de tipo entero y una salida de
tipo Double.
Estructura de una función en Java
Definir la salida del programa, un objeto máximo (Ejemplo: double).

Definir el nombre de la función (identificador).

Definir cuáles son los datos de entrada y el tipo de cada uno, pueden ser cero o
varias entradas. (Ejemplo: int, int, int, double, String)

Bloque de código de la función.

Una vez creada la función, debe ser llamada para que se ejecute el código.
(Creación – instancia)
Estructura función ejemplo
Escribir ”public static” (Más adelante se explicará su sgnificado).

Definir el tipo de salida del programa, un objeto máximo (Ejemplo: double).

Definir el nombre de la función (identificador).

public static double area_circulo ( int radio){

double resultado = 3.1416 * (radio * radio);

return resultado;
}

Nota: En caso de que la función no retorne nada, el tipo será “void” y no


se escribe él ”return”.
Estructura función ejemplo
Definir cuáles son los datos de entrada y el tipo de cada uno, pueden
ser cero o varias entradas. (Ejemplo: int, int, int, double, String)

Bloque de código de la función.

Salida del programa.

public static double area_circulo ( int radio){

double resultado = 3.1416 * (radio * radio);

return resultado;
}
Estructura función ejemplo

Es importante que el tipo de dato retornado coincida con el tipo de dato


prometido al principio de la función.

public static double area_circulo ( int radio){

double resultado = 3.1416 * (radio * radio);

return resultado;
}
Ejemplo Función

Crear una función que calcule el área de un rectángulo.

Entradas: Base y altura. (double)

Salidas: área (double)

Luego realizar las siguientes pruebas:

Entradas: base=20.1, altura=2.0. Salida esperada: 40.2

Entradas: base=5.7, altura=3.2. Salida esperada: 18.24


Solución al ejemplo
class Main { 1. Clase “main”.

public static double area_rect( double base, double altura ){


double area = base*altura; 2. Creación función.
return area;
}

public static void main(String[] args) { 1. Función del “main”.

double A = 20.1;
3. Crear las variables de entrada.
double B = 2.0;
double resultado = area_rect(A,B); 4. Llamado a la función.
System.out.println(resultado); 5. Imprimir el resultado.

}
}

7. Bloque falso/Default.
Ejercicios
Ejercicios
Dada una coordenada (𝑥, 𝑦) que representa un punto en el plano cartesiano,
construya un algoritmo que permita determinar a que cuadrante pertenece
dicho punto

Leer tres números enteros e imprimir el mayor

Leer dos números enteros y determinar si la diferencia entre ambos es un


divisor exacto de alguno de los dos números
Referencias

[1] Sierra, K., & Bates, B. (2013). Head first java. " O'Reilly Media, Inc.".
[2] Martin, R. C. (2009). Clean code: a handbook of agile software craftsmanship. Pearson Education.
(Chap 1, 2)
[3] Sommerville, I. (2016). Software Engineering GE. Pearson Australia Pty Limited. (Chap 6, 6.3)
[4] Coronel, C., Morris, S., & Rob, P. (2011). Bases de datos: diseño, implementación y administración.
Cengage Learning Editores. (Chap 1)
[5] Seidl, M., Scholz, M., Huemer, C., & Kappel, G. (2015). UML@ classroom: An introduction to
object-oriented modeling. Springer. (Chap 1, 4)

También podría gustarte