2. Las estructuras de control permiten que una o más instrucciones se realicen varias veces, mientras que una condición se cumpla Esto se conoce como transferencia de control,entre estas estructuras se encuentran lasESTRUCTURAS SELECTIVAS Y REPETITIVAS.También conocidas como BIFURCACIONES Y BUCLES.
3. TOMA DE DECISIONES: Una condición es la comparación de una variable/constante /expresión-numérica 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 Relacionales: Operador en Java Significado == Igual != Diferente < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que
4. Decisión simple: si <Expresión_Lógica> entonces <acciones> fin_si JAVA instrucción if:if ( Expresión_Lógica){ acciones }
5. Decisión Doble: si <Expresión_Lógica> entonces <acciones1> si_no <acciones2> fin_si JAVA instrucción if:if ( Expresion_Logica){ Acciones } else{ Acciones }
6. EJEMPLO: Programa que permite saber si una persona es mayor de edad importjavax.swing.JOptionPane; publicclass Segundo{ publicstaticvoidmain ( Stringargs[] ) { StringstrEdad; intedad; 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 ); } }
7. Switch _ case 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. La secuencia default puede omitirse Estatuto break Cuando 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.
8. Decisión múltiple: según_sea<Expresión_Ordinal> hacer <lista_de_valores_ordinales>:<acciones> … [si_no <acciones>] fin_según En java: switch( opcion ) { case 1: break; case 2: break; case 3: break; default: break; }
9. ESTRUCTURAS SELECTIVAS EJEMPLO: 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). * permite realizar un salto de línea. */ strMensaje = "1. Sumar " + "2. Restar " + "3. Multiplicar " + "4. Dividir " + "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 );
10. 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;
11. 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 ); } }
12. 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).
13. 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 JAVA while ( Expresion_Logica ){ Acciones }
14. 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.-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.-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 ); } }
15. 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> JAVA do { Acciones } while ( Expresion_Logica );
16. 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 " + "2. Restar " + "3. Multiplicar " + "4. Dividir " + "Ingrese opcion: "; strOpcion = OptionPane.showInputDialog(null,strMensaje,"Entrada de datos", JOptionPane.INFORMATION_MESSAGE); opcion = Integer.parseInt ( strOpcion );
17. 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;
18. EJEMPLO case 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; }
19. EJEMPLO strContinuar = JOptionPane.showInputDialog(null,"Desea continuar?1 Para continuar2 Para terminar","Entrada de datos",JOptionPane.INFORMATION_MESSAGE); continuar = Integer.parseInt( strContinuar ); } while ( continuar == 1 ); System.exit( 0 ); } }
20. 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++)
21. ESTRUCTURA REPETITIVA: for en java. SEUDOCODIGO Repetitivas:desde <Variable> ← <V_Inicial> Hasta <V_Final> [Incremento|Decremeto <incremento>] Hacer <acciones> fin_desde JAVA for ( int i=1; i<=10; i++ ){ Acciones }
22. 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 );
23. ESTRUCTURAS O CICLOS REPETITIVOS 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 + ""; /*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 */} }