Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Ing. Marcelo Parisholon sw Estructuras de Control 2 Ing. Marcelo Parisholon sw Estructuras de Control ● Estructuras de Control – Nos permiten cambiar el orden de ejecución de las sentencias de un programa. ● 2 tipos de estructuras de control – Estructuras de control de Decisión ● Nos permite seleccionar sentencias o bloques de codigo que deben o no ejecutarse – Estructuras de control de Repetición ● Nos permiten repetir sentencias o bloques de codigo un cierto número de veces 3 Ing. Marcelo Parisholon sw Sentencias Condicionales ● Estructura de control de Decisiones – Son sentencias que nos permiten seleccionar y ejecutar bloques de codigo y saltear otros. ● Tipos: – if – if-else – If-else if 4 Ing. Marcelo Parisholon sw Sentencia if ● Sentencia if – Especifica la sentencia (o bloque de codigo) se ejecutara en el caso de evaluar la condición como verdadera ( true). ● sintaxis: if( boolean_expression ) statement; o if( boolean_expression ){ statement1; statement2; } – donde, ● boolean_expression es una expresion o variable booleana. 5 Ing. Marcelo Parisholon sw Sentencia if - Diagrama Flujo 6 Ing. Marcelo Parisholon sw ejemplo 1 int grade = 68; if( grade > 60 ) System.out.println("Congratulations!"); 7 Ing. Marcelo Parisholon sw ejemplo 2 int grade = 68; if( grade > 60 ){ System.out.println("Congratulations!"); System.out.println("You passed!"); } 8 Ing. Marcelo Parisholon sw Sentencia if-else ● Sentencia if-else – Utilizada para ejecutar ciertas instrucciones en el caso de ser verdadera la condición y otras instrucciones en el caso de ser falsa. ● sintaxis: if( boolean_expression ){ statement1; statement2; . . . } else{ statement3; statement4; . . . } 9 Ing. Marcelo Parisholon sw Sentenci if-else : Diagrama 10 Ing. Marcelo Parisholon sw Ejemplo 1 int grade = 68; if( grade > 60 ) System.out.println("Congratulations!"); else System.out.println("Sorry you failed"); 11 Ing. Marcelo Parisholon sw ejemplo 2 int grade = 68; if( grade > 60 ){ System.out.println("Congratulations!"); System.out.println("You passed!"); } else{ System.out.println("Sorry you failed"); } 12 Ing. Marcelo Parisholon sw Sentencia if-else-else if ● La instrucciones en la clausula else de una sentencia if puede ser otra sentencia if. ● Esta estructura permite realizar selecciones complejas. ● Sintaxis: if( boolean_expression1 ) statement1; else if( boolean_expression2 ) statement2; else statement3; 13 Ing. Marcelo Parisholon sw Diagrama de Flujo 14 Ing. Marcelo Parisholon sw Ejemplo int grade = 68; if( grade > 90 ){ System.out.println("Very good!"); } else if( grade > 60 ){ System.out.println("Very good!"); } else{ System.out.println("Sorry you failed"); } 15 Ing. Marcelo Parisholon sw Programa de Ejemplo 1 public class Grade { 2 public static void main( String[] args ) 3 { 4 double grade = 92.0; 5 if( grade >= 90 ){ 6 System.out.println( "Excellent!" ); 7 } 8 else if( (grade < 90) && (grade >= 80)){ 9 System.out.println("Good job!" ); 10 } 11 else if( (grade < 80) && (grade >= 60)){ 12 System.out.println("Study harder!" ); 13 } 14 else{ System.out.println("Sorry, you failed.");15 16 } 17 } 18 } 16 Ing. Marcelo Parisholon sw Sentencia switch ● switch – Permite seleccion de multiples selecciones. ● sintaxis:: switch( switch_expression ){ case case_selector1: statement1;// statement2;//block 1 break; case case_selector2: statement1;// statement2;//block 2 break; : default: statement1;// statement2;//block n } 17 Ing. Marcelo Parisholon sw Sentencia switch ● where, – switch_expression ● Es una expresion o varialble entera o caracter – case_selector1, case_selector2 and so on, ● Son constantes enteras o character Unicas. 18 Ing. Marcelo Parisholon sw Sentencia switch ● Cuando una sentencia switch es encontrada, – Java primero evalua switch_expression, y salta al bloque Case que concuerda con el valor de la expresión. – El programa ejecuta las sentencias en orden hasta el punto que encuentre la sentencia break, saltando a la proxima sentencia luego del final de la estructura switch. – Si ningun Case corresponde se ejecutará el bloque default. Esta clausula es opcional.. 19 Ing. Marcelo Parisholon sw Sentencia switch ● Notas: – A diferencia de la sentencia if, las sentencias multiples no necesitan estar entre llaves. – Cuando un Case concuerda con la sentencia switch , todas las sentencias asociadas son ejecutadas. Pero no solamente estas, las sentencias asociadas con los siguientes Case tambien serán ejecutadas. – Para prevenir que se ejecuten sentencias del proximo Case se utiliza la sentencia break como ultima instrucción.. 20 Ing. Marcelo Parisholon sw Sentencia switch : Diagrama 21 Ing. Marcelo Parisholon sw Ejemplo 1 public class Grade { 2 public static void main( String[] args ) 3 { 4 int grade = 92; 5 switch(grade){ 6 case 100: 7 System.out.println( "Excellent!" ); 8 break; 9 case 90: 10 System.out.println("Good job!" ); 11 break; 12 case 80: 13 System.out.println("Study harder!" ); 14 break; 15 default: 16 System.out.println("Sorry, you failed."); 17 } 18 } 19 } 22 Ing. Marcelo Parisholon sw Estructuras de Control de Repetición ● Estructuras de Control de Repetición – Son sentencias Java que permiten ejecutar bloques de codigo un numero de veces. ● Tipos: – while – do-while – for 23 Ing. Marcelo Parisholon sw Sentencia while ● Bucle while – La sentencia o bloque de codigo es repetido mientras se cumpla una condición. ● sintaxis: while( boolean_expression ){ statement1; statement2; . . . } – El bucle se ejecutara mientras boolean_expression sea true. 24 Ing. Marcelo Parisholon sw Ejemplo 1 int x = 0; while (x<10) { System.out.println(x); x++; } 25 Ing. Marcelo Parisholon sw ejemplo 2 //infinite loop while(true) System.out.println(“hello”); 26 Ing. Marcelo Parisholon sw ejemplo 3 //no loops // statement is not even executed while (false) System.out.println(“hello”); 27 Ing. Marcelo Parisholon sw Sentencia do-while ● Bucle do-while – Es similar a while – La sentencias se ejecutaran mientras la condicion sea satisfecha – La principal diferencia es que al menos se ejecutará una vez. ● sintaxis: do{ statement1; statement2; . . . }while( boolean_expression ); 28 Ing. Marcelo Parisholon sw ejemplo 1 int x = 0; do { System.out.println(x); x++; }while (x<10); 29 Ing. Marcelo Parisholon sw Ejemplo 2 //infinite loop do{ System.out.println(“hello”); } while (true); 30 Ing. Marcelo Parisholon sw ejemplo 3 //one loop // statement is executed once do System.out.println(“hello”); while (false); 31 Ing. Marcelo Parisholon sw Sentencia for ● Bucle for – Permite la ejecución del codigo un determinado número de veces. ● sintaxis: for(InitializationExpression;LoopCondition;StepExpression) { statement1; statement2; . . . } – donde, ● InitializationExpression – inicializa la varialble del bucle. ● LoopCondition – compara la variable del bucle con un valor límite. ● StepExpression - actualiza la variable del bucle. 32 Ing. Marcelo Parisholon sw Ejemplo ● Este codigo es equivalente al siguiente utilizando while. int i; for( i = 0; i < 10; i++ ){ System.out.println(i); } int i = 0; while( i < 10 ){ System.out.print(i); i++; } 33 Ing. Marcelo Parisholon sw Sentencias de Salto ● Sentencias de salto permiten redirigir la ejecución a un cierto punto del programa. ● Java tiene 3 sentencias desalto: – break – continue – return. 34 Ing. Marcelo Parisholon sw Sentencia break sin rotulo ● break – Termina la ejecucion de un switch. – Tambien es utilizada para terminar sentencias for, while, o do-while 35 Ing. Marcelo Parisholon sw Ejemplo String names[]={"Beah","Bianca","Lance","Belle","Nico","Yza","Gem","Ethan"}; String searchName = "Yza"; boolean foundName = false; for( int i=0; i< names.length; i++ ){ if( names[i].equals( searchName )){ foundName = true; break; } } if( foundName ) System.out.println( searchName + " found!" ); else System.out.println( searchName + " not found." ); 36 Ing. Marcelo Parisholon sw sentencia break rotulada ● Sentencia break rotulada – Finaliza la sentencia externa, la cual es identificada con un rotulo que es indicado en la sentencia break. – El control es transferido a la sentencia siguente a la rotulada(terminada). – El programa ejemplo de la proxima diapositiva busca un valor en un arreglo de dos dimensiones. Utiliza dos bucles for para recorrerlo. Cuando lo encuentra el break rotulado finaliza el bucle for exterior que fue rotulado. 37 Ing. Marcelo Parisholon sw Example int[][] numbers = {{1, 2, 3}, {4, 5, 6},{7, 8, 9}}; int searchNum = 5; boolean foundNum = false; searchLabel: for( int i=0; i<numbers.length; i++ ){ for( int j=0; j<numbers[i].length; j++ ){ if( searchNum == numbers[i][j] ){ foundNum = true; break searchLabel; } } } if( foundNum ) System.out.println(searchNum + " found!" ); else System.out.println(searchNum + " not found!"); 38 Ing. Marcelo Parisholon sw Sentencia continue sin rotulo ● Sentencia continue sin rotulo – Salta al final de bucle interno en el que se encuentra, forzando nuevamente a evaluar la expresion de control. Basicamente salta las instrucciones restantes para evaluar nuevamente la condicion. 39 Ing. Marcelo Parisholon sw ejemplo String names[] = {"Beah", "Bianca", "Lance", "Beah"}; int count = 0; for( int i=0; i<names.length; i++ ){ if( !names[i].equals("Beah") ){ continue; //skip next statement } count++; } System.out.println("There are "+count+" Beahs in the list"); 40 Ing. Marcelo Parisholon sw Sentencia continue rotulada ● Sentencia continue rotulada – Saltea la iteracion del bucle actual de un bucle externo rotulado. 41 Ing. Marcelo Parisholon sw Ejemplo outerLoop: for( int i=0; i<5; i++ ){ for( int j=0; j<5; j++ ){ System.out.println("Inside for(j) loop"); //message1 if( j == 2 ) continue outerLoop; } System.out.println("Inside for(i) loop"); //message2 } ● En este ejemplo, el segundo mensaje nunca se imprime. 42 Ing. Marcelo Parisholon sw Sentencia return ● Sentencia return – Utilizada para salir del método en ejecución. – El flujo del programa retorna a la llamada original del metodo. 43 Ing. Marcelo Parisholon sw Sentencia return ● Para retornar un valor – Simplemente colocar el valor (o expresion) luego del return. – ejemplo: return ++count; or return "Hello"; – El tipo de dato del valor retornado debe coincidir con la declaracion del valor de retorno del metodo. 44 Ing. Marcelo Parisholon sw Sentencia return ● Cuando el metodo es declarado void, se utiliza return sin un valor de retorno. – ejemplo, return; 45 Ing. Marcelo Parisholon sw Resumen ● Estructuras de Control de Decision – if – if-else – if – else if – switch ● Estructuras de Repeticion – while – do-while – for ● Estructuras de Salto – break – continue – return
Compartir