Sie sind auf Seite 1von 23



   
!"#$
ESCUELA DE INGENIERA
DE SISTEMAS Y COMPUTACION


   
 
   

 
   

 
   
    
 

Las sentencias de control de flujo determinan el orden en que


se ejecutarn las otras sentencias dentro del programa. El
lenguaje Java soporta varias sentencias de control de flujo,
incluyendo:





toma de decisiones
bucles
excepciones
miscelaneas

if-else, switch-case
for, while, do-while
try-catch-finally, throw
break, continue, label:, return

 
   
   

La sentencia if-else de java proporciona a los programas la posibilidad


de ejecutar selectivamente otras sentencias basndose en algn criterio.
int puntuacion;
String nota;
if (puntuacion >= 90) {
nota = "Sobresaliente";
} else if (puntuacion >= 80) {
nota = "Notable";
} else if (puntuacion >= 70) {
nota = "Bien";
} else if (puntuacion >= 60) {
nota = "Suficiente";
} else {
nota = "Insuficiente";
}

true

Expresin
lgica

sentencia;
o
Bloque (1)

false
sentencia;
o
Bloque (2)

 
   
  
La sentencia switch se utiliza para realizar sentencias condicionalmente basadas en
alguna expresin.
int mes;
...
switch (mes) {
case 1: System.out.println("Enero"); break;
case 2: System.out.println("Febrero"); break;
case 3: System.out.println("Marzo"); break;
case 4: System.out.println("Abril"); break;
case 5: System.out.println("May0"); break;
case 6: System.out.println("Junio"); break;
case 7: System.out.println("Julio"); break;
case 8: System.out.println("Agosto"); break;
case 9: System.out.println("Septiembre"); break;
case 10: System.out.println("Octubre"); break;
case 11: System.out.println("Noviembre"); break;

 
   
  

Cada sentencia case debe ser nica y el valor proporcionado a cada


sentencia case debe ser del mismo tipo que el tipo de dato devuelto por
la expresin proporcionada a la sentencia switch
Otro punto de interes en la sentencia switch son las sentencias break
despus de cada case. La sentencia break hace que el control salga de
la sentencia switch y contine con la siguiente lnea.
La sentencia break es necesaria porque las sentencias case se siguen
ejecutando hacia abajo. Esto es, sin un break explcito, el flujo de
control seguira secuencialmente a travs de las sentencias case
siguientes.
En el ejemplo anterior, no se quiere que el flujo vaya de una sentencia
case a otra, por eso se han tenido que poner las sentencias break.

 
   
  

Sin embargo, hay ciertos escenarios en los que se quiere que


el control proceda secuencialmente a travs de las sentencias
case. Como este cdigo que calcula el nmero de das de un
mes de acuerdo con el ritmico refrn que dice "Treinta dias
tiene Septiembre...".

 
   
  
 
 
 
 

 
 
 
 
 
 
 

  
  
  
 !
 "
 

  
  
 
# 
$ %%& 
$ '' 
$ 

  "
(

  
  
)

 
   
  

Finalmente, puede utilizar la sentencia default al final de la sentencia


switch para manejar los valores que no se han manejado explcitamente
por una de las sentencias case.
int mes;
...
switch (mes) {
case 1: System.out.println("Enero"); break;
case 2: System.out.println("Febrero"); break;

case 11: System.out.println("Noviembre"); break;


case 12: System.out.println("Diciembre"); break;
default: System.out.println("no es un mes vlido!");

break;
}

     
   

Los ciclos o bucles en programacin se utilizan para ejecutar


una sentencia o bloque de sentencias repetidamente un
determinado nmero de veces.
A cada ejecucin del bloque de sentencias se le llama
iteracin.
La cantidad de iteraciones de un bucle o ciclo depende de una
condicin de parada, cuando se cumple esta condicin el
ciclo termina su ejecucin y el programa contina en la
sentencia siguiente.

     
  

Generalmente hablando, una sentencia while realiza una


accin mientras se cumpla una cierta condicin. La sintaxis
general de la sentencia while es.
while (expresin) {
sentencia_1;

sentencia_N;
}

Se utiliza cuando no se conoce de antemano el nmero de


veces que se deben ejecutar las sentencias.

     
  

Su comportamiento es semejante al ciclo while, slo que aqu


la condicin va al final del cdigo del ciclo, por lo que tenemos
garantizado que el cdigo se va a ejecutar al menos una vez.
do {
sentencia_1;

sentencia_N;
} while(condicin);

Depender del caso concreto si es ms conveniente emplear


un bucle while o do while.

     
  

Se puede utilizar este bucle cuando se conoce de antemano


sus lmites (inicio, fin y su instruccin de incremento). La
sintaxis general de for, es:
for (expresion1 ; expresion2 ; expresion3){
sentencia_1;

sentencia_N;
}
Donde, expresin1 es la instruccin de inicializacin (ej. i=0, i=10),
expresion2 es la condicin para continuar el ciclo (i<=20, i<100) y
expresin3 el incremento de la variable contador del ciclo (ej: i++,
i=i+1, i+=2).

     
   
if ( a = b)
No inicializar la variable de control.
public class PruebasClase
{
public static void main(String args[])
{
int i; // variable no inicializada
while(i<9)
i++;
}
}

     
   
Ciclos infinitos.
public class PruebasClase
{
public static void main(String args[])
{
int i=0;
while(i<9)
System.out.println("Ciclo infinito");
}
}

     
   

If ( a == b ) ;
for ( int a = 0 , a < 9 , a++)

     
    ! "

No se tratan de un ciclo, pero s de una sentencia ntimamente


relacionada con estos. El encontrarse una sentencia break en el cuerpo
de cualquier bucle detiene su ejecucin y sale de este, contina
ejecutando el cdigo que hay despus del ciclo.
Esta sentencia tambin se puede usar para forzar la salida del bloque
de ejecucin de una instruccin condicional (esto ya se vio con switch).
continue tambin detiene la ejecucin del cuerpo del ciclo, pero en esta
ocasin no se sale ciclo, sino que se pasa a la siguiente iteracin de
este.

     
    

Esta sentencia se utiliza para salir del mtodo actual y volver a la


sentencia siguiente a la que origin la llamada en el mtodo original.
Existen dos formas de return: una que devuelve un valor y otra que no
lo hace.
Para devolver un valor, simplemente se pone el valor (o una expresin
que calcule el valor) detrs de la palabra return.
return ++count;
El valor devuelto por return debe corresponder con el tipo del valor de
retorno de la declaracin del mtodo.
Cuando un mtodo se declara como void utiliza la forma de return que
no devuelve ningn valor.
return;

 
 #

Desarrollar una aplicacin java que lea 100 nmeros. Cada


nmero ledo se muestra con el mtodo showMessageDialog

 
 #

Algoritmo para leer y mostrar 100 nmeros


1. Repita 100 veces
2. inicio
3.
lea un nmero
4.
mustrelo en pantalla
5. fin

 
 #

Algoritmo para leer y mostrar 100 nmeros


1. Repita 100 veces, es decir, desde 1 hasta 100
2. inicio
3.
lea un nmero
4.
mustrelo en pantalla
5. fin

 
 #

Algoritmo para leer y mostrar 100 nmeros


1. Repita 100 veces, es decir, desde 101 hasta 200
2. inicio
3.
lea un nmero
4.
mustrelo en pantalla
5. fin

 
 #

Algoritmo para leer y mostrar 100 nmeros


Inicializacin Finalizacin

Incremento

1. Desde 1 hasta 100, de 1 en 1


2. inicio
3.
lea un nmero
4.
mustrelo en pantalla
5. fin

Lmites del ciclo

 
 #

Se necesita ejecutar las instrucciones en azul 100 veces


import javax.swing.*;
public class Ejemplo56{
public static void main(String a[]){
int numero;
numero= Integer.parseInt(JOptionPane.showInputDialog("Entre un numero"));
JOptionPane.showMessageDialog(null, "El numero fue " +numero);
System.exit(0);
}
}

 
 #

Se necesita ejecutar las instrucciones en azul 100 veces


import javax.swing.*;
public class Ejemplo56{
public static void main(String a[]){
int numero;
for(int i=1; i<=100 ; i++ ) {
numero= Integer.parseInt(JOptionPane.showInputDialog("Entre un numero"));
JOptionPane.showMessageDialog(null, "El numero fue " +numero);
}
System.exit(0);
}
}

 
 #

 Desarrollar una aplicacin java que genere en un JTextArea


con su respectivo scroll, los nmeros del 1 al 50

 
$     #

import javax.swing.*;
public class Ejemplo57{
public static void main(String a[]){
JTextArea miArea=new JTextArea(10,20);
JScrollPane miScroll=new JScrollPane(miArea);
for(int i=1; i<=50;i++){
miArea.append("\n" + i);
}
JOptionPane.showMessageDialog(null,miScroll);
System.exit(0);
}
}

 
 %

Desarrollar una aplicacin java que genere los nmeros pares


del 2 al 20

 
$     %
import javax.swing.*;
public class Ejemplo61{
public static void main(String a[]){
JTextArea miArea=new JTextArea(10,20);
JScrollPane miScroll=new JScrollPane(miArea);
for(int i=2; i<=20;i=i+2){
miArea.append("\n" + i);
}
JOptionPane.showMessageDialog(null,miScroll);
System.exit(0);
}
}

 
 &

Desarrollar una aplicacin Java que muestre en un rea de


texto, todos los nmeros impares entre 5 y 30.

 
$     &
import javax.swing.*;
public class Ejemplo62{
public static void main(String a[]){
JTextArea miArea=new JTextArea(10,20);
JScrollPane miScroll=new JScrollPane(miArea);
for(int i=5; i<=30;i++){
if ( i%2 != 0 )
miArea.append("\n" + i);
}
JOptionPane.showMessageDialog(null,miScroll);
System.exit(0);
}
}

 
 '( ) 

Recordemos la siguiente clase en donde se utiliza for para


leer e imprimir en pantalla cien nmeros secuencialmente.
import javax.swing.*;
public class Ejemplo56{
public static void main(String a[]){
int numero;
for(int i=1; i<=100 ; i++ ) {
numero= Integer.parseInt(JOptionPane.showInputDialog("Entre un numero"));
JOptionPane.showMessageDialog(null, "El numero fue " +numero);
}
System.exit(0);
}
}

 
 '( ) 

for(int i=1; i<=100 ; i++ ) {


numero= Integer.parseInt(JOptionPane.showInputDialog("Entre un numero"));
JOptionPane.showMessageDialog(null, "El numero fue " +numero);
}

El for anterior se puede describir con el siguiente pseudo-cdigo:


Desde i=1,
mientras i sea menor o igual a 50,
aumentando de 1 en 1, haga
miArea.append("\n" + i);

 
 '( ) 

Desde i=1,
mientras i sea menor o igual a 50,
aumentando de 1 en 1, haga
miArea.append("\n" + i);
Este algoritmo se puede implementar con un while de la siguiente
manera:
int i=1;
while(i<=50){
miArea.append("\n" + i);
i++;
}

 
 '( ) 

Desde i=1,
mientras i sea menor o igual a 50,
aumentando de 1 en 1, haga
miArea.append("\n" + i);
Este algoritmo se puede implementar con un while de la siguiente
manera:
int i=1;
while(i<=50){
miArea.append("\n" + i);
i++;
}

 
 '( ) 

Convierta el siguiente for a while


for (int i=2; i<=10;i=i+2){
x++;
}

 
   '

El equivalente a while es:


int i=2;
while(i<=10) {
x++;
i=i+2;
}

 
 *( ) 

Convierta el siguiente for a while


for(int i=20; i<=100;i++){
miArea.append(\n+ i);
}

 
   *

El equivalente a while es:


int i=20;
while(i<=100){
miArea.append(\n+ i);
i++;
}

 
 +( ) 

Convierta el siguiente while a for


int i=1;
while(i<=10){
miArea.append(\n + i);
i++;
}

 
   +

El equivalente a for es:


for(int i=1; i<=10; i++){
miArea.append(\n + i);
}

, -

La clase java.lang.Math deriva de Object.


La clase Math proporciona mtodos static para realizar las
operaciones matemticas ms habituales. Proporciona
adems constantes como PI.
Para poder hacer uso de los mtodos de la clase math no es
necesario importar ningn paquete.
Los mtodos de la clase Math devuelven valores de tipo
double.

, -
-.

, -
-.

, -
  /  -
class EjemploMath {
public static void main( String args[] ) {
int x;
double rand,y,z;
float max;
rand = Math.random()*100;
x = Math.abs( -123 );
y = Math.round( 123.567 );
z = Math.pow( 2,4 );
max = Math.max( (float)1e10,(float)3e9 );
System.out.println( rand );
System.out.println( x );
System.out.println( y );
System.out.println( z );
System.out.println( max );
System.out.println( Math.PI );
}
}

, -
0

public class Casting {


public static void main(String[] args) {
int i = 9,k;
float j = 47.9F;
System.out.println("i: " + i + " j: " +j);
k = (int)j; //empleo de un cast
System.out.println("j: " + j + " : " +k);
j = k; //no necesita cast
System.out.println("j: " + j + " : " +k);
float m = 2.3F;
//float m = 2.3; dara error al compilar.
system.out.println("m: "+m);
}
}

Das könnte Ihnen auch gefallen