Estructuras de control
Las estructuras de control permiten que una o más instrucciones se realicen varias veces, mientras que una condición se cumplaEsto se conoce como transferencia de control,entre estas estructuras se encuentran lasESTRUCTURAS SELECTIVAS Y  REPETITIVAS.También conocidas como BIFURCACIONES Y BUCLES.
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
Decisión simple: 	si <Expresión_Lógica> entonces				<acciones>fin_siJAVAinstrucción if:if ( Expresión_Lógica){acciones      	}
Decisión Doble:	 	si <Expresión_Lógica> entonces				<acciones1>si_no				<acciones2>fin_siJAVAinstrucción if:if ( Expresion_Logica){Acciones  }else{Acciones }
EJEMPLO:  Programa que permite saber si una persona es mayor de edadimportjavax.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 );     }}
Switch  _ caseSe 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 omitirseEstatuto 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.
Decisión múltiple: 	según_sea<Expresión_Ordinal> hacer				<lista_de_valores_ordinales>:<acciones>				…			[si_no				<acciones>]fin_segúnEn java:switch( opcion ) {			case 1: 				break;			case 2: 				break;			case 3: 				break;default:				break;}
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 );
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;
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 );           }}
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).
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 terminaSEUDOCODIGORepetitivas:mientras <Expresión_Lógica> Hacer				<acciones>			fin_mientras			JAVAwhile ( Expresion_Logica  ){		Acciones}
EJEMPLOimport 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 );	}}
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 SEUDOCODIGORepetitivas:repetir <acciones>			hasta_que <Expresión_Lógica>JAVAdo {		Acciones 		} while ( Expresion_Logica );
EJEMPLOimport 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 );
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;
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;	}
EJEMPLOstrContinuar = 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 );	}}
ESTRUCTURA REPETITIVA:  for en java.Funcionamiento del For1.Ejecuta el o los estatutos de inicialización2.Evalúa la condición, si es verdadera entra al ciclo3.Ejecuta el o los estatutos4.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++)
ESTRUCTURA REPETITIVA:  for en java. SEUDOCODIGORepetitivas:desde <Variable> ← <V_Inicial> Hasta <V_Final>			[Incremento|Decremeto <incremento>] Hacer			<acciones>fin_desde		JAVAfor ( int i=1; i<=10; i++ ){         	Acciones}
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 );
ESTRUCTURAS O CICLOS REPETITIVOSEJEMPLO: /*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 de control

  • 1.
  • 2.
    Las estructuras decontrol permiten que una o más instrucciones se realicen varias veces, mientras que una condición se cumplaEsto 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:Unacondició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_siJAVAinstrucción if:if ( Expresión_Lógica){acciones }
  • 5.
    Decisión Doble: si<Expresión_Lógica> entonces <acciones1>si_no <acciones2>fin_siJAVAinstrucción if:if ( Expresion_Logica){Acciones }else{Acciones }
  • 6.
    EJEMPLO: Programaque permite saber si una persona es mayor de edadimportjavax.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 _caseSe 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 omitirseEstatuto 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.
  • 8.
    Decisión múltiple: según_sea<Expresión_Ordinal>hacer <lista_de_valores_ordinales>:<acciones> … [si_no <acciones>]fin_segúnEn java:switch( opcion ) { case 1: break; case 2: break; case 3: break;default: break;}
  • 9.
    ESTRUCTURAS SELECTIVASEJEMPLO: importjavax.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 );
  • 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: whileen java. Se realizan los estatutos y se verifica la condición, mientras sea verdadera se sigue ejecutando; al momento de ser falsa terminaSEUDOCODIGORepetitivas:mientras <Expresión_Lógica> Hacer <acciones> fin_mientras JAVAwhile ( Expresion_Logica ){ Acciones}
  • 14.
    EJEMPLOimport javax.swing.JOptionPane;public classQuinto{ 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 ); }}
  • 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 SEUDOCODIGORepetitivas:repetir <acciones> hasta_que <Expresión_Lógica>JAVAdo { Acciones } while ( Expresion_Logica );
  • 16.
    EJEMPLOimport javax.swing.JOptionPane;public classSexto{ 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 );
  • 17.
    EJEMPLO strNum1 = JOptionPane.showInputDialog(null,"Ingreseel 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.
    EJEMPLOstrContinuar = JOptionPane.showInputDialog(null,"Deseacontinuar?\n1 Para continuar\n2 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 For1.Ejecuta el o los estatutos de inicialización2.Evalúa la condición, si es verdadera entra al ciclo3.Ejecuta el o los estatutos4.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. SEUDOCODIGORepetitivas:desde <Variable> ← <V_Inicial> Hasta <V_Final> [Incremento|Decremeto <incremento>] Hacer <acciones>fin_desde JAVAfor ( int i=1; i<=10; i++ ){ Acciones}
  • 22.
    EJEMPLO: import javax.swing.JOptionPane;/*seimporta 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 CICLOSREPETITIVOSEJEMPLO: /*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 */}}