Logo Studenta

Estructuras de control

¡Este material tiene más páginas!

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

Continuar navegando

Otros materiales