Manual Estructura de Datos - IF y SWITCH

También podría gustarte

Está en la página 1de 13

Estructura de Datos Luis Arias Hidalgo

Tema 2: Sentencias Condicionales If y Switch


Sentencias Condicionales
Sentencia IF_ELSE (SI SINO)
La sentencia solo se ejecuta si se cumple la condición. En caso contrario el programa sigue su
curso sin ejecutar la sentencia.
formato:
if (condición){
//bloque de programacion
}
Ejemplo:
if (condición) {
sentencia1;
}
else{
sentencia2;
}
Si se cumple la condición ejecutará la sentencia1, sinó ejecutará la sentencia2. En cualquier caso,
el programa continuará después de haber cerrado la llave del else

Nota: Si hubiera mas de una sentencia dentro del If o el else se abrirá con llaves

Ejemplo: Ingrese por teclado un numero de turno y visualize el nombre del turno(1- Mañana, 2-
Tarde, 3- Noche)
import javax.swing.JOptionPane;
public class Ejercicio1 {
public static void main(String[] args){
int turno;
String msj;
turno=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Nro de Turno "));
if(turno==1){
msj=“Manana”
}else{
If(turno==2){
msj="Tarde";
}else{
msj="Noche";
}
}
JOptionPane.showMessageDialog(null,msj);
}
}

Ejemplo 1: Ingrese por teclado una contraseña si esta es igual a “IDAT” se debe visualizar el
mensaje “Acceso Permitido” en caso contrario visualizar el mensaje “Acceso Denegado”
import javax.swing.JOptionPane;
public class Ejercicio1 {
public static void main(String[] args){
String pwd,msj;
pwd=JOptionPane.showInputDialog("Ingrese Contraseña ");
if(pwd.equals("IDAT")){
msj=“Acceso Permitido”
}else{
msj="Acceso Denegado";
}
JOptionPane.showMessageDialog(null,msj);

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

}
}

Ejemplo 2: Ingrese tres números por teclado y visualice el mayor.


import javax.swing.JOptionPane;
public class Ejercicio2 {
public static void main(String[] args){
int n1,n2,n3,mayor;
mayor=0;
n1=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero 1"));
n2=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero 1"));
n3=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero 1"));
if(n1>n2 && n1>n3){
mayor = n1;
}
if(n2>n1 && n2>n3){
mayor = n2;
}
if(n3>n1 && n3>n1){
mayor = n3;
}
JOptionPane.showMessageDialog(null,"Mayor es " + mayor);
}

}&& siginifica Y y || significa o.

Operador Ternario:
Sintaxis:
Var = (condicion?verdad:falso);
Cuando se utiliza el operador ternario el resultado de este se debe guardar en una variable de
lo contrario saldrá error.

Ejemplo: Se tiene un numero si este es mayor que 300 y menor 500 se debera incrementar en
un 10% de lo contrario se debera disminuir en un 20%
Con el if normal seria asi:
If(Num >300&&Num < 500){
Num = Num + (Num * 0.10);
}else{
Num = Num - (num * 0.20);
}
Con el operador ternario seria asi:

Num = (Num >300&&Num < 500?Num + (Num *0.10):Num – (Num * 0.20));

Condicion Verdad Falso

Esta sentencia se lee asi: en la variable num se va a guardar dependiendo de la condicion si la


cumple se guardara num incrementado en un 10% si no se guardara num disminuido en un 20%

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

Ejercicios Resueltos

1. Ingresar un número por teclado, si es positivo sumarle 20 y mostrarlo.

public class Main {


public static void main(String[] args) {
String Numero = JOptionPane.showInputDialog("ingrese Número:");
int n = Integer.parseInt(Numero );
if (n > 0) {
n=n+20;
}
JOptionPane.showMessageDialog( null,n,"Resultado",JOptionPane.INFORMATION_ME
SSAGE
);
}
}

2. Ingresar un número y si es divisible entre 5 mostrar un mensaje de “exito”.

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String Numero;
int n;
Numero =JOptionPane.showInputDialog("ingrese Número:");
n = Integer.parseInt(Numero );
if ((n % 5) = = 0) {
JOptionPane.showMessageDialog( null,“exito”,"Resultado",JOptionPane.INFORMATI
ON_MESSAGE
);
}
}
}

ESTRUCTURA SELECTIVA DOBLE

Realiza la ejecución de sentencias si la condición que valida es verdadera, en caso de no


cumplirse la condición, se realiza otro bloque de sentencias.

SINTAXIS
if (condicion){
//sentencias 1
}else{
//sentencias 2
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

1. Escribir un programa el cual lea dos valores enteros. Si el primero es menor o igual
que el segundo, que imprima el mensaje “Primero”. Si el segundo es menor que el primero,
que imprima el mensaje “Segundo”.

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String Numero1 ,Numero2;
int n1,n2;
Numero1 =JOptionPane.showInputDialog("1º Número:");
n1 = Integer.parseInt(Numero1);
Numero2 =JOptionPane.showInputDialog("2º Número:");
n2 = Integer.parseInt(Numero2);
if(n1 <= n2){
JOptionPane.showMessageDialog(
null,"Primero","Resultado",JOptionPane.INFORMATION_MESSAGE
);
}else{
JOptionPane.showMessageDialog(
null,"Segundo",
"Resultado",JOptionPane.INFORMATION_MESSAGE
);
}
}
}

2. Elaborar un algoritmo que me calcule el promedio de tres notas y me muestre


Aprobado si su promedio es mayor que 10.5 caso contrario me muestre Desaprobado.

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String Numero1 ,Numero2;
int n1,n2;
double promedio;
Numero1 =JOptionPane.showInputDialog("1º Nota:");
n1 = Integer.parseInt(Numero1);
Numero2 =JOptionPane.showInputDialog("2º Nota:");
n2 = Integer.parseInt(Numero2);
promedio = (n1+n2)/2;

if(promedio >= 10.5){


JOptionPane.showMessageDialog(
null,"Aprobado",
"Resultado",JOptionPane.INFORMATION_MESSAGE
);
}else{
JOptionPane.showMessageDialog(
null,"Desaprobado",
"Resultado",JOptionPane.INFORMATION_MESSAGE
);
}
}
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

ESTRUCTURA SELECTIVA ANIDADA

Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de
una estructura condicional hay otra estructura condicional.

SINTAXIS
if (condicion){
[
if (condicion){
//sentencias 1
} [else{
//sentencias 2
}]
]
}else{
[
if (condicion){
//sentencias 1
} [else{
//sentencias 2
}]
]
}

1. 1. Confeccionar un programa que pida por teclado tres notas de un alumno,


calcule el promedio e imprima alguno de estos mensajes:
Si el promedio es >=15 mostrar "Bueno".
Si el promedio es >=10.5 y <15 mostrar "Regular".
Si el promedio es <=10 mostrar "Malo".

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String N1 ,N2, N3;
int n1,n2, n3;
double prom;
N1 =JOptionPane.showInputDialog("1º Nota:");
n1 = Integer.parseInt(N1);
N2 =JOptionPane.showInputDialog("2º Nota:");
n2 = Integer.parseInt(N2);
N3 =JOptionPane.showInputDialog("2º Nota:");
n3 = Integer.parseInt(N3);
prom = (n1+n2+n3)/3;

if(prom >= 15){


JOptionPane.showMessageDialog(
null,"Bueno","Resultado",JOptionPane.INFORMATION_MESSAGE
);
}else{
if (prom >= 10.5){
JOptionPane.showMessageDialog(
null,"Regular","Resultado",
JOptionPane.INFORMATION_MESSAGE
);

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

}else{
JOptionPane.showMessageDialog(
null,"Malo","Resultado",
JOptionPane.INFORMATION_MESSAGE
);
}
}
}
}

2. Generaremos tres números aleatorios y luego imprimiremos el mayor de los tres

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
double n1,n2, n3 ;
n1 = Math.random();
n2 = Math.random();
n3 = Math.random();

if(n1 >= n2){


if (n1 >= n3){
JOptionPane.showMessageDialog(
null,n1,"Mayor n1",JOptionPane.INFORMATION_MESSAGE
);
}else{
JOptionPane.showMessageDialog(
null,n3,"Mayor n3",JOptionPane.INFORMATION_MESSAGE
);
}
}else{
if (n2 >= n3){
JOptionPane.showMessageDialog(
null,n2,"Mayor n2",JOptionPane.INFORMATION_MESSAGE
);
}else{
JOptionPane.showMessageDialog(
null,n3,"Mayor n3",JOptionPane.INFORMATION_MESSAGE
);
}
}
}
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

Estructura Selectiva Múltiple

Else If

Si se desea comparar más de una variable o la comparación no es de igualdad, se recure a la


selectiva múltiple formada por “else if”

SINTAXIS
if (condicion1) {
//sentencias 1
}else if (condicion2){
//sentencias 2
}else if (condicion3){
//sentencias 3
.
.
.
}else if (condicionn){
//sentencias n
}else{
//sentencias...
}
1. Obtenga tres números aleatorios y muéstrelos en orden descendente.

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
double n1,n2, n3 ;
String res="";
n1 = Math.random();
n2 = Math.random();
n3 = Math.random();

if(n1 >= n2 && n2 >= n3){


res = n1 + " , " + n2 + " , " + n3;
}else if(n1 >= n3 && n3 >= n2){
res = n1 + " , " + n3 + " , " + n2;
}else if(n2 >= n1 && n1 >= n3){
res = n2 + " , " + n1 + " , " + n3;
}else if(n2 >= n3 && n3 >= n1){
res = n2 + " , " + n3 + " , " + n1;
}else if(n3 >= n1 && n1 >= n2){
res = n1 + " , " + n1 + " , " + n2;
SINTAXIS }else if(n3 >= n2 && n2 >= n1){
res = n3 + " , " + n2 + " , " + n1;
}
JOptionPane.showMessageDialog(
null,res,"Ordenado",JOptionPane.INFORMATION_MESSAGE
);
}
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

2. Muestre si un numero ingresado es positivo, negativo o cero.

import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String N1,res;
double n1;
N1 =JOptionPane.showInputDialog("Ingrese Número:");
n1 = Integer.parseInt(N1);

if(n1 >0){
res = "Positivo";
}else if(n1 == 0){
res = "Cero";
}else{
res = "Negativo";
}
JOptionPane.showMessageDialog(
null,res,"Resultado",JOptionPane.INFORMATION_MESSAGE
);
}
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

Sentencia SWITCH (EN CASO)

switch (variable){
case contenido_variable1:
sentencias;
break;
case contenido_variable2:
sentencias;
break;
default:
sentencias;
}

Cada case puede incluir una o más sentencias sin necesidad de ir entre llaves, ya que se ejecutan
todas hasta que se encuentra la sentencia BREAK la variable evaluada sólo puede ser de tipo
entero o caracter. default ejecutará las sentencias que incluya, en caso de que la opción escogida
no exista.

Ejemplo1: Ingrese un número del 1 al 7 y visualize que día es.


import javax.swing.JOptionPane;
public class Ejercicio3 {
public static void main(String[] args){
int dia;
String nomdia="";
dia=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Dia de la semana...."));
switch(dia){
case 1: nomdia="Domingo"; break;
case 2: nomdia="Lunes"; break;
case 3: nomdia="Martes"; break;
case 4: nomdia="Miércoles"; break;
case 5: nomdia="Jueves"; break;
case 6: nomdia="Viernes"; break;
case 7: nomdia="Sábado"; break;
default :nomdia="No existe"; break;
}
JOptionPane.showMessageDialog(null,nomdia);
}
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

Aunque con la estructura condicional se pueden realizar múltiples comparaciones, a menudo no es


tan efectivo ni elegante. En estos casos es recomendable usar la sentencia switch para los casos
en que se desea comparar con igualdad una variable entera.

SINTAXIS
switch (variable) {
case constante1: Es
secuencia de sentencias
break;
case constante2:
secuencia de sentencias
break;
case constante3:
secuencia de sentencias
break;
...
default:
secuencia de sentencias
}
importante recalcar que no se puede probar más de una constante por case, pero la forma como
se puede simular este punto, es no teniendo sentencias asociados a un case, es decir, teniendo
una sentencia nula donde sólo se pone el caso, con lo que se permite que el flujo del programa
caiga al omitir las sentencias, como se muestra a continuación:

switch (letra)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
msj = “Es vocal”;
break;

case ' ':


msj = “Es espacio”;
break;

default:
msj = “Es otro caracter”;
break;
}

EJERCICIOS RESUELTOS

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

1. Ingrese un número de un solo digito por teclado y visualice el nombre en letras.


import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String Numero, letra;
int n;
Numero =JOptionPane.showInputDialog("ingrese Número:");
n = Integer.parseInt(Numero );
switch(n){
case 0: letra = "cero"; break;
case 1: letra = "uno"; break;
case 2: letra = "dos"; break;
case 3: letra = "tres"; break;
case 4: letra = "cuatro"; break;
case 5: letra = "cinco"; break;
case 6: letra = "seis"; break;
case 7: letra = "siete"; break;
case 8: letra = "ocho"; break;
case 9: letra = "nueve"; break;
}
JOptionPane.showMessageDialog(
null,letra,"Resultado",JOptionPane.INFORMATION_MESSAGE
);
}
}

2. Ingrese por teclado el número del mes (de acuerdo al orden) y muestre la cantidad de días que
tiene. Considere año no bisiesto.
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String Mes;
int n,dias = 0;
Mes =JOptionPane.showInputDialog("ingrese Número:");
n = Integer.parseInt(Mes);
switch(n){
case 1: dias = 31; break;
case 2: dias = 28; break;
case 3: dias = 31; break;
case 4: dias = 30; break;
case 5: dias = 31; break;
case 6: dias = 30; break;
case 7: dias = 31; break;
case 8: dias = 31; break;
case 9: dias = 30; break;
case 10: dias = 31; break;
case 11: dias = 30; break;
case 12: dias = 31; break;
}
JOptionPane.showMessageDialog(
null,dias,"Resultado",JOptionPane.INFORMATION_MESSAGE
);
}
}

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

Laboratorio 2: Sentencias condicionales

1.- Ingrese por teclado la hora en formato de 24 horas y la cantidad de minutos al dar enter debera
salir la hora en formato de 12 horas por ejemplo si se ingresa 23 en una caja y en la otra 12 el
resultado seria 11:12:PM

2.- Ingrese la cantidad de minutos hablados por una persona y el tipo de llamada (Local, Nacional,
Internacional).Se visualizara el importe de la llamada sabiendo que por los 3 primeros minutos se
paga S/ 1.00 y por cada minuto adicional se paga 0.50 en caso sea local si es nacional se
incrementa el 25% y si es internacional se incrementa el 60% a los precios por minuto.

3.- Ingrese por teclado dos números y un signo de operación (+,-,*,/) se debera mostrar el resultado
de la operación.

4.- Ingrese por teclado el nombre, año de nacimiento y el sexo de una persona (M o F),se deberá
mostrar uno de los siguientes mensajes.
- Varon mayor de edad
- Varon menor de edad
- Dama mayor de edad
-Dama menor de edad

5.- Ingrese un numero y visualícelo en romano.

6.- Ingrese por teclado el día de nacimiento y el mes de nacimiento de una persona al dar Enter se
deberá mostrar su signo zodiacal.

7.- Se deberá desarrollar un algoritmo en el cual se deberá de ingresar el nombre de un alumno y


el turno en el que estudia (M , T y N) asi como tambien el ciclo (I, II, III, IV, V, VI y SIDET) y la
carrera (CI, Enfermeria y Administración) se debera calcular el pago de su pension en base a los
siguientes datos:
el precio por carrera es:
CI = 320.00,,Enfermeria = 280.00,Administración = 270.00
Ademas que dependiendo del ciclo en el que estan se pagara un recargo del precio de
10,20,30,40,50,60 y 70% (para sidet). Asi como tambien si es del turno “M” se debera recargar
10% mas solo si esta en I, II, o III ciclo, si es del turno “T” se recarga el 15 % mas solo si esta en I,
o II y por ultimo si es del turno “N” se se la hara un descuento del 15 % solo si esta en SIDET
Al finalizar solo se debe mostrar el monto de la pension.

8.- Diseñe un programa que me permita implementar un menú de opciones de conversión de


Monedas:
Convertir Soles a Dolares [ 1 ]
Convertir Dolares a Euros [ 2 ]
Convertir Euros a Dolares [ 3 ]
Convertir Euros a Soles [ 4 ]
Convertir Soles a Euros [ 5 ]
Salir [ 6 ]
Sabiendo que se tendra que Ingresar a una de estas opciones e Ingresar el monto a
convertir
Para convertir soles a Dólares y a Euros. Considere el tipo de cambio 1Dolar= 3.52 soles
y 1 Dolar=1.09 Euros

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011


Estructura de Datos Luis Arias Hidalgo

9.- Un instituto ofrece cursos de programación, el costo de los cursos es de la siguiente manera:

Básico Intermedio Avanzado


Profesor 50 70 100
Alumno 40 50 80
Externo 70 100 120

Se pide elaborar un programa para emitir el recibo por dicho curso, los datos que se
mostraran en el recibo son: nombre del participante, costo del curso y nivel del curso.

MANPAL S.A.C. τσdσs lσs Dεяεcнσs яεsεяvαdσs cσρчяιgнτ-Peru © 2011

También podría gustarte