estructuras de control

30
Estructuras de Control. Por lo general, en un programa las instrucciones se ejecutan una después de otra en el orden en que están escritas. Este proceso se conoce con el nombre de ejecución secuencial. Varias instrucciones de Java permiten al programador especificar que la siguiente instrucción a ejecutarse tal ves no sea la siguiente en la secuencia. Esto se conoce como transferencia de control, entre estas estructuras se encuentran las ESTRUCTURAS SELECTIVAS Y LOS CICLOS REPETITIVOS.

Upload: ups

Post on 05-Jul-2015

17.135 views

Category:

Education


1 download

DESCRIPTION

Estructuras de Control

TRANSCRIPT

Page 1: Estructuras De Control

Estructuras de Control.

Por lo general, en un programa las instrucciones se ejecutan una después de otra en el orden en que están escritas. Este proceso se conoce con el nombre de ejecución secuencial. Varias instrucciones de Java permiten al programador especificar que la siguiente instrucción a ejecutarse tal ves no sea la siguiente en la secuencia.

Esto se conoce como transferencia de control, entre estas estructuras se encuentran las ESTRUCTURAS SELECTIVAS Y LOS CICLOS REPETITIVOS.

Page 2: Estructuras De Control

Estructuras de Control.

TOMA DE DECISIONES:

Una condición es la comparación de una variable/constante/expresión-numerica contra otra variable/constante/expresión-numérica. A este tipo de condición se le llama condición simple. La condición simple utiliza los siguientes operadores de relación:

Operadores RelacionalesLos operadores relacionales que tiene Java son :

Operador en Java Significado== Igual

!= Diferente < Menor que > Mayor que

<= Menor o igual que >= Mayor o igual que

Page 3: Estructuras De Control

Estructuras de Control.

TOMA DE DECISIONES:

Este estatuto sirve para realizar alguna(s) instrucción(es) en vez de otra(s) de acuerdo a alguna condición que resulte verdadera.

Versión simple de la instrucción if de java, la cual permite que un programa tome una decisión, dependiendo de si una condición es verdadera o falsa.

Decisión simple: si <Expresión_Lógica> entonces<acciones>

fin_si

instrucción if: if ( Expresion_Logica ){ acciones

}

SEUCOCODIGO

JAVA

Page 4: Estructuras De Control

Estructuras de Control.

Recuerden que cada línea de instrucción, siempre termina con un punto y coma (;), entonces cuando transcriban los siguientes códigos fuente, tengan en cuenta que deben de reorganizar las instrucciones:

Ej: en el ejemplo que presento en la siguiente diapositiva debo colocarlo así por que no hay mas espacio

strEdad = JOptionPane.showInputDialog(null,"Ingrese la edad: ","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

Pero al transcribir a java toda esta expresión debe de quedar en una sola línea de código, por lo contrario el código generará error de compilación.

ASI:

strEdad=JOptionPane.showInputDialog(null,"Ingrese la edad: ","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

Page 5: Estructuras De Control

Estructuras de Control.

EJEMPLO:

// Algoritmo que permite saber si una persona es mayor de edad

import javax.swing.JOptionPane;

class Primero{public static void main ( String args[] ) {

String strEdad;int edad;

strEdad = JOptionPane.showInputDialog(null,"Ingrese la edad: ","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

edad = Integer.parseInt( strEdad );

/* La clase JOptionPane, maneja parámetros como: * null: permite centrar la interfase en la pantalla * luego sigue el parámetro que se muestra por pantalla. * Entrada de Datos, es el nombre que va a recibir la interfase en su

* barra de titulo. * JOptionPane.INFORMATION_DIALOG, es el tipo de icono que va

* asumir la interfase */

Page 6: Estructuras De Control

Estructuras de Control.

CONTINUACION EJEMPLO:

if ( edad >= 18 ){JOptionPane.showMessageDialog(null, "Es mayor de edad",

"Resultado", JOptionPane.INFORMATION_MESSAGE);}

System.exit( 0 ); // Es un paquete que termina la aplicación con la ventana } // fin del metodo main

} // fin de la clase Primero

Page 7: Estructuras De Control

Estructuras de Control.

instrucción if: if ( Expresion_Logica){ Acciones

} else{

Acciones }

SEUCOCODIGO

JAVA

TOMA DE DECISIONES: Versión doble de la instrucción if de java.

Decisión Doble: si <Expresión_Lógica> entonces<acciones1>

si_no<acciones2>

fin_si

Page 8: Estructuras De Control

Estructuras de Control.

EJEMPLO:

// Algoritmo que permite saber si una persona es mayor de edad

import javax.swing.JOptionPane;

public class Segundo{public static void main ( String args[] ) {

String strEdad;int edad;

strEdad = JOptionPane.showInputDialog(null,"Ingrese la edad: ","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

edad = Integer.parseInt( strEdad );

if ( edad >= 18 ){JOptionPane.showMessageDialog(null, "Es mayor de edad",

"Resultado", JOptionPane.INFORMATION_MESSAGE);}else{

JOptionPane.showMessageDialog(null, "Es menor de edad", "Resultado", JOptionPane.INFORMATION_MESSAGE);

}

System.exit( 0 );}

}

Page 9: Estructuras De Control

Estructuras de Control.

SEUCOCODIGO

TOMA DE DECISIONES: Versión múltiple de la instrucción if de java.

Decisión Múltiple: si <Expresión_Lógica> entonces<acciones1>

si_no si <Expresión_Lógica> entonces

<acciones2> si_no <acciones3> fin_si

fin_si

Page 10: Estructuras De Control

Estructuras de Control.

JAVA

TOMA DE DECISIONES: Versión múltiple de la instrucción if de java.

Decisión Múltiple: if ( Expresion_logica){ Acciones1

} else{

if (Expresion_Logica ){ Acciones2

} else {

Acciones3 }

}

Page 11: Estructuras De Control

Estructuras de Control.

EJEMPLO:

/* algoritmo que solicita los marcadores de dos equipos y permite saber *quien gano, perdió o si quedaron empatados. */ import javax.swing.JOptionPane;

public class Tercero{public static void main ( String args[] ) {

String strGolLocal, strGolVisitante;int golLocal, golVisitante;

strGolLocal = JOptionPane.showInputDialog(null,"Ingrese el numero de goles del equipo local: ","Entrada de datos", JOptionPane.INFORMATION_MESSAGE);

golLocal = Integer.parseInt( strGolLocal );

strGolVisitante = JOptionPane.showInputDialog(null,"Ingrese el numero de goles del equipo visitante: ","Entrada de datos", JOptionPane.INFORMATION_MESSAGE);

golVisitante = Integer.parseInt( strGolVisitante );

Page 12: Estructuras De Control

Estructuras de Control.

EJEMPLO:

if ( golLocal > golVisitante ){ JOptionPane.showMessageDialog(null, "Gana el local", "Resultado",

JOptionPane.INFORMATION_MESSAGE);}else{ if ( golVisitante > golLocal ){ JOptionPane.showMessageDialog(null,"Gana el visitante",

"Resultado", JOptionPane.INFORMATION_MESSAGE); }

else { JOptionPane.showMessageDialog(null, "Hubo empate",

"Resultado", JOptionPane.INFORMATION_MESSAGE); }

}

System.exit( 0 );}

}

Page 13: Estructuras De Control

Estructuras de Control.

TOMA DE DECISIONES: Versión múltiple abreviada instrucción switch - case en java.

Se utiliza para ejecutar acciones diferentes según el valor de una expresión o variable. Este estatuto sustituye al uso de if dentro de if, concepto conocido como if anidados.

Consiste en una serie de etiquetas case y un case por omisión (default).

La acción 1 se ejecuta si la variable adquiere el valor1.

La acción 2 se ejecuta si la variable adquiere el valor 2.

La acción n se ejecuta si la variable adquiere el valor n.

Cualquier otro valor de la variable conduce a la realización de la secuencia accionD, indicada por la palabra reservada default.

La secuencia default puede omitirse Estatuto breakCuando se encuentra una sentencia case que concuerda con el valor del switch se ejecutan las sentencias que le siguen y todas las demás a partir de ahí, a no ser que se introduzca una sentencia break para salir de la sentencia switch.

Page 14: Estructuras De Control

Estructuras de Control.

SEUDOCOGIGO

Decisión múltiple: según_sea <Expresión_Ordinal > hacer<lista_de_valores_ordinales>:<acciones>…

[si_no //El corchete indica opcionalidad<acciones>]

fin_según

TOMA DE DECISIONES: Versión múltiple abreviada instrucción switch - case en java.

Page 15: Estructuras De Control

Estructuras de Control.

JAVA

TOMA DE DECISIONES: Versión múltiple abreviada instrucción switch - case en java.

switch ( opcion ) {case 1:

break;case 2:

break;case 3:

break;case 4:

break;default:

break;}

Page 16: Estructuras De Control

Estructuras de Control.

ESTRUCTURAS SELECTIVASEJEMPLO:

import javax.swing.JOptionPane;

public class Cuarto{public static void main ( String args[] ) {

String strMensaje, strOpcion, strNum1, strNum2;int opcion, num1, num2, resultado;

/* strMensaje es una variable de tipo String, a la cual le asigno la siguiente * cadena de caracteres o (mensaje). * \n permite realizar un salto de línea. */

strMensaje = "1. Sumar \n " + "2. Restar \n " + "3. Multiplicar \n " + "4. Dividir \n\n " + "Ingrese opcion: ";

strOpcion = JOptionPane.showInputDialog(null,strMensaje,"Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

opcion = Integer.parseInt ( strOpcion );

strNum1 = JOptionPane.showInputDialog(null,"Ingrese el primer numero","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

num1 = Integer.parseInt ( strNum1 );

Page 17: Estructuras De Control

Estructuras de Control.

EJEMPLO:

strNum2 = JOptionPane.showInputDialog(null,"Ingrese el segundo numero","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

num2 = Integer.parseInt ( strNum2 );

switch ( opcion ) { case 1:

resultado = num1 + num2;JOptionPane.showMessageDialog( null, "La suma es: " + resultado,

"Resultados", JOptionPane.INFORMATION_MESSAGE);break;

case 2: resultado = num1 - num2;JOptionPane.showMessageDialog( null, "La resta es: " + resultado,

"Resultados", JOptionPane.INFORMATION_MESSAGE);break;

case 3: resultado = num1 * num2;JOptionPane.showMessageDialog( null, "La multiplicación es: " +resultado, "Resultados", JOptionPane.INFORMATION_MESSAGE);break;

Page 18: Estructuras De Control

Estructuras de Control.

EJEMPLO:

case 4: if ( num2 != 0 ){resultado = num1 / num2;JOptionPane.showMessageDialog( null, "La división es: " + resultado,

"Resultados", JOptionPane.INFORMATION_MESSAGE);} else {

JOptionPane.showMessageDialog( null, "No se puede dividir por cero", "Resultados", JOptionPane.ERROR_MESSAGE);

}break;

default:JOptionPane.showMessageDialog( null, "Opción no válida", "Resultados", JOptionPane.INFORMATION_MESSAGE);break;

}

System.exit( 0 ); }}

Page 19: Estructuras De Control

Estructuras de Control.

Una estructura repetitiva (también llamada estructura de ciclo) permite al programador especificar que un programa debe repetir una acción mientras cierta condición sea verdadera.

En otras palabras se ejecuta la (s) instrucciones (s) mientras la condición es verdadera; al momento de ser falsa termina el ciclo.

Si la condición es falsa la primera vez nunca se ejecuta (n) la (s) instrucciones (s).

Page 20: Estructuras De Control

Estructuras de Control.

ESTRUCTURA REPETITIVA: while en java.

Se realizan los estatutos y se verifica la condición, mientras sea verdadera se sigue ejecutando; al momento de ser falsa termina

SEUDOCODIGO

Repetitivas: mientras <Expresión_Lógica> Hacer<acciones>

fin_mientras

while ( Expresion_Logica ){Acciones

}

JAVA

Page 21: Estructuras De Control

Estructuras de Control.

EJEMPLO

import javax.swing.JOptionPane;

public class Quinto{public static void main ( String args[] ) {

String strGasto;double gasto, suma = 0;

strGasto = JOptionPane.showInputDialog(null,"Ingrese el gasto.\n-1 para terminar","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

gasto = Double.parseDouble( strGasto );

while ( gasto != -1 ){ suma = suma + gasto; strGasto = JOptionPane.showInputDialog(null,"Ingrese el gasto.\n-1 para

terminar","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

gasto = Double.parseDouble( strGasto );}

JOptionPane.showMessageDialog(null, "La suma de los gastos es " + suma, "Resultado", JOptionPane.INFORMATION_MESSAGE);

System.exit( 0 );}

}

Page 22: Estructuras De Control

Estructuras de Control.

ESTRUCTURA REPETITIVA: do - while en java.

Si se requiere realizar más de una instrucción se deben utilizar llaves.

Se realizan las instrucciones y se verifica la condición, mientras sea verdadera se sigue ejecutando; al momento de ser falsa termina el ciclo.

Dado que la condición se revisa al final del ciclo la (s) instrucción (es) se realizan al menos una vez a diferencia del while

SEUDOCODIGO

Repetitivas: repetir <acciones>

hasta_que <Expresión_Lógica>

do {Acciones

} while ( Expresion_Logica );

JAVA

Page 23: Estructuras De Control

Estructuras de Control.

EJEMPLO

import javax.swing.JOptionPane;

public class Sexto{public static void main ( String args[] ) {

String strMensaje, strOpcion, strNum1, strNum2, strContinuar;int opcion, num1, num2, resultado, continuar;

do {

strMensaje = "1. Sumar \n " + "2. Restar \n " + "3. Multiplicar \n " + "4. Dividir \n\n " +

"Ingrese opcion: ";

strOpcion = OptionPane.showInputDialog(null,strMensaje,"Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

opcion = Integer.parseInt ( strOpcion );

Page 24: Estructuras De Control

Estructuras de Control.

EJEMPLO

strNum1 = JOptionPane.showInputDialog(null,"Ingrese el primer numero","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

num1 = Integer.parseInt ( strNum1 );

strNum2 = JOptionPane.showInputDialog(null,"Ingrese el segundo numero","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

num2 = Integer.parseInt ( strNum2 );

switch ( opcion ) {case 1:

resultado = num1 + num2;JOptionPane.showMessageDialog( null, "La

suma es: " + resultado, "Resultados", JOptionPane.INFORMATION_MESSAGE);break;

case 2: resultado = num1 - num2;JOptionPane.showMessageDialog( null, "La

resta es: " + resultado, "Resultados", JOptionPane.INFORMATION_MESSAGE);break;

Page 25: Estructuras De Control

Estructuras de Control.

EJEMPLOcase 3:

resultado = num1 * num2;JOptionPane.showMessageDialog( null, "La multiplicación es: " + resultado, "Resultados", JOptionPane.INFORMATION_MESSAGE);break;

case 4: if ( num2 != 0 ){resultado = num1 / num2;

JOptionPane.showMessageDialog( null, "La división es: " + resultado, "Resultados", JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog( null, "No se puede dividir por cero", "Resultados", JOptionPane.ERROR_MESSAGE);

}break;

default:JOptionPane.showMessageDialog( null, "Opción no válida", "Resultados",

JOptionPane.INFORMATION_MESSAGE);break;

}

Page 26: Estructuras De Control

Estructuras de Control.

EJEMPLO

strContinuar = JOptionPane.showInputDialog(null,"Desea continuar?\n1 Para continuar\n2 Para terminar","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);continuar = Integer.parseInt( strContinuar );

} while ( continuar == 1 );

System.exit( 0 );}

}

Page 27: Estructuras De Control

Estructuras de Control.

ESTRUCTURA REPETITIVA: for en java.

Funcionamiento del For

1.Ejecuta el o los estatutos de inicialización 2.Evalúa la condición, si es verdadera entra al ciclo 3.Ejecuta el o los estatutos 4.Ejecuta la o las acciones y regresa al paso 2 Notas sobre el For

• Las 3 partes del for son opcionales, si no se pone condición se toma como verdadero. • Si no se incluye la inicialización o condición, los ; deben de ir. Ejemplo: for ( ; a > 10 ; a--)• Si la primera vez la condición es falsa no se ejecuta ningún estatuto y termina el for • Una variable puede declararse en la sección de inicialización, solo hay que tomar en cuenta que esta variable solo es reconocida dentro del ciclo. Ejemplo: for (int num = 1; num < = 10; num++)

Page 28: Estructuras De Control

Estructuras de Control.

ESTRUCTURA REPETITIVA: for en java.

SEUDOCODIGO

Repetitivas: desde <Variable> ← <V_Inicial> Hasta <V_Final>[Incremento|Decremeto <incremento>] Hacer

<acciones>fin_desde

for ( int i=1; i<=10; i++ ){ Acciones}

JAVA

Page 29: Estructuras De Control

Estructuras de Control.

EJEMPLO:

import javax.swing.JOptionPane;/*se importa el paquete de javax q trae el subpaquete swing q *contiene la clase JOptionPane*/

public class Septimo{//se crea la clase

public static void main ( String args[] ) {//se inicializa el metodo main

String strNum, strTabla="";//se define las variables de tipo cadena de caracter int num;//se define una variables de entero

strNum = JOptionPane.showInputDialog(null,"Ingrese el número: ","Entrada de datos",JOptionPane.INFORMATION_MESSAGE);

num = Integer.parseInt( strNum );

Page 30: Estructuras De Control

Estructuras de Control.

EJEMPLO:

/*strNum almacena temporalmente el numero que se ha ingresado mediante el uso * del JOptionPane.ParseInt *se realiza un cast para cambiar los valores de tipo caracter a enteros *se crea de tipo entero la variable num*/

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

/* strTabla es un acumulador de tipo cadena, que en cada iteración concatena o une * la operación actual con las operaciones realizadas anteriormente. *primero se hace la operación y luego ese valor se convierte en cadena para ser *concatenado. */ strTabla = strTabla + num + " * " + i + " = " + num*i + "\n";

/*strTabla es una variable de tipo acUmuladora */

}

JOptionPane.showMessageDialog(null, strTabla, "Resultado", JOptionPane.INFORMATION_MESSAGE);

System.exit( 0 );

/*mediante el uso del JOptionPane.showMessageDialog que me permite visualizar * una interfaz que me muestre el resultado *se cierra el sistema */}}

ESTRUCTURAS O CICLOS REPETITIVOS