Manual Estructura de Datos - If y SWITCH

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

Transcript of Manual Estructura de Datos - If y SWITCH

Page 1: Manual Estructura de Datos - If y SWITCH

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

Page 2: Manual Estructura de Datos - If y SWITCH

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

Page 3: Manual Estructura de Datos - If y SWITCH

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.INFORMATION_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.

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

if (condicion){//sentencias 1

}else{//sentencias 2

}

SINTAXIS

Page 4: Manual Estructura de Datos - If y SWITCH

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

Page 5: Manual Estructura de Datos - If y SWITCH

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.

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

if (condicion){[if (condicion){

//sentencias 1} [else{

//sentencias 2}]]

}else{[if (condicion){

//sentencias 1} [else{

//sentencias 2}]]

}

SINTAXIS

Page 6: Manual Estructura de Datos - If y SWITCH

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

Page 7: Manual Estructura de Datos - If y SWITCH

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”

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; }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

SINTAXIS

if (condicion1) { //sentencias 1

}else if (condicion2){//sentencias 2

}else if (condicion3){//sentencias 3

.

.

.}else if (condicionn){

//sentencias n}else{

//sentencias...}

SINTAXIS

Page 8: Manual Estructura de Datos - If y SWITCH

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

Page 9: Manual Estructura de Datos - If y SWITCH

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

Page 10: Manual Estructura de Datos - If y SWITCH

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.

Es

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

switch (variable) { case constante1:

secuencia de sentencias break;

case constante2: secuencia de sentencias break;

case constante3: secuencia de sentencias break;

... default:

secuencia de sentencias }

SINTAXIS

Page 11: Manual Estructura de Datos - If y SWITCH

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

Page 12: Manual Estructura de Datos - If y SWITCH

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.00Ademas 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 SIDETAl 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

Page 13: Manual Estructura de Datos - If y SWITCH

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