[código] Instrucciones de Control en Java (3)
(anterior) Los ejemplos de esta sección se enfocan en el proceso de desarrollo de programas. Se exponen los tipos primitivos de instrucciones de control para la tomas de decisiones (if, else, if... else, while, do...while, for, switch, etc.). Los ejemplos también muestran el manejo de la repetición controlada por contador y por centinela, y se introducen los operadores de incremento, decremento y asignación de Java y las instrucciones break y switch.
Terminación de un ciclo con break
// Terminación de un ciclo con break.
import javax.swing.JOptionPane;
public class PruebaBreak
{
public static void main( String args[] )
{
String salida = "";
int cuenta;
for ( cuenta = 1; cuenta <= 10; cuenta++ ) // iterar 10 veces
{
if ( cuenta == 5 ) // si cuenta vale 5,
break; // terminar el ciclo
salida += cuenta + " ";
} // fin de instrucción for
salida += "\nSe salió del ciclo en cuenta = " + cuenta;
JOptionPane.showMessageDialog( null, salida );
System.exit( 0 ); // terminar la aplicación
} // fin de main
} // fin de la clase PruebaBreak
Continuar con la siguiente iteración de un ciclo (continue)
// Continuar con la siguiente iteración de un ciclo.
import javax.swing.JOptionPane;
public class PruebaContinue
{
public static void main( String args[] )
{
String salida = "";
for ( int cuenta = 1; cuenta <= 10; cuenta++ ) // iterar 10 veces
{
if ( cuenta == 5 ) // si cuenta vale 5,
continue; // evitar el código restante en el ciclo
salida += cuenta + " ";
} // fin de instrucción for
salida += "\nSe utilizó continue para evitar imprimir un 5";
JOptionPane.showMessageDialog( null, salida );
System.exit( 0 ); // terminar la aplicación
} // fin de main
} // fin de la clase PruebaContinue
Instrucción break etiquetada
// Instrucción break etiquetada
import javax.swing.JOptionPane;
public class PruebaBreakEtiqueta
{
public static void main( String args[] )
{
String salida = "";
// bloque etiquetado
alto:
{
// contar 10 filas
for ( int fila = 1; fila <= 10; fila++ )
{
// contar 5 columnas
for ( int columna = 1; columna <= 5 ; columna++ )
{
if ( fila == 5 ) // si la fila es 5,
break alto; // saltar al final del bloque alto
salida += "* ";
} // fin de instrucción for interna
salida += "\n";
} // fin de for externo
// la siguiente lÃnea se evita
salida += "\nLos ciclos terminaron normalmente";
} // fin de bloque etiquetado
JOptionPane.showMessageDialog( null, salida,"Probando break con una etiqueta",JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 ); // terminar la aplicación
} // fin de main
} // fin de la clase PruebaBreakEtiqueta
Instrucción continue etiquetada
// Instrucción continue etiquetada.
import javax.swing.JOptionPane;
public class PruebaContinueEtiqueta
{
public static void main( String args[] )
{
String salida = "";
siguienteFila: // etiqueta de destino de la instrucción continue
// contar 5 filas
for ( int fila = 1; fila <= 5; fila++ )
{
salida += "\n";
// contar 10 columnas por fila
for ( int columna = 1; columna <= 10; columna++ )
{
// si la columna es mayor que la fila, empezar la siguiente fila
if ( columna > fila )
continue siguienteFila; // siguiente iteración del ciclo etiquetado
salida += "* ";
} // fin de instrucción for interior
} // fin de instrucción for exterior
JOptionPane.showMessageDialog( null, salida,"Probando continue con una etiqueta", JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 ); // terminar la aplicación
} // fin de main
} // fin de la clase PruebaContinueEtiqueta
Operadores lógicos (&&, ||, &, |, ^, !)
// Operadores lógicos
import javax.swing.*;
public class OperadoresLogicos
{
public static void main( String args[] )
{
// crear JTextArea para mostrar los resultados
JTextArea areaSalida = new JTextArea( 17, 20 );
// adjuntar JTextArea a un JScrollPane, para desplazarse por los resultados
JScrollPane desplazador = new JScrollPane( areaSalida );
// crear la tabla de verdad para el operador && (AND condicional)
String salida = "AND condicional (&&)" +
"\nfalse && false: " + ( false && false ) +
"\nfalse && true: " + ( false && true ) +
"\ntrue && false: " + ( true && false ) +
"\ntrue && true: " + ( true && true );
// crear la tabla de verdad para el operador || (OR condicional)
salida += "\n\nOR condicional (||)" +
"\nfalse || false: " + ( false || false ) +
"\nfalse || true: " + ( false || true ) +
"\ntrue || false: " + ( true || false ) +
"\ntrue || true: " + ( true || true );
// crear la tabla de verdad para el operador & (AND lógico booleano)
salida += "\n\nAND lógico booleano (&)" +
"\nfalse & false: " + ( false & false ) +
"\nfalse & true: " + ( false & true ) +
"\ntrue & false: " + ( true & false ) +
"\ntrue & true: " + ( true & true );
// crear la tabla de verdad para el operador | (OR inclusivo lógico booleano)
salida += "\n\nOR inclusive lógico booleano (|)" +
"\nfalse | false: " + ( false | false ) +
"\nfalse | true: " + ( false | true ) +
"\ntrue | false: " + ( true | false ) +
"\ntrue | true: " + ( true | true );
// crear la tabla de verdad para el operador ^ (OR exclusivo lógico booleano)
salida += "\n\nOR exclusivo lógico booleano (^)" +
"\nfalse ^ false: " + ( false ^ false ) +
"\nfalse ^ true: " + ( false ^ true ) +
"\ntrue ^ false: " + ( true ^ false ) +
"\ntrue ^ true: " + ( true ^ true );
// crear la tabla de verdad para el operador ! (negación lógica)
salida += "\n\nNOT lógico (!)" +
"\n!false: " + ( !false ) +
"\n!true: " + ( !true );
areaSalida.setText( salida ); // colocar los resultados en el objeto JTextArea
JOptionPane.showMessageDialog( null, desplazador,"Tablas de verdad", JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 ); // terminar la aplicación
} // fin de main
} // fin de la clase OperadoresLogicos









albertjh dice:
Diciembre 4th, 2007 a las 4:37 pm
Increible esta serie de publicaciones que acabas de hacer sobre JAVA, me has dejado impresionado y no he podido resistirme a comentar…..
Opino una cosa, como buen programador no deberÃas enseñar a la gente como hacer breaks y labels(etiquetas) porque se pierde la esencia de la programación estructurada y todo esto la rompe… pero bueno, por enseñarlo no pasa nada, el caso es no usarlo
Genial!, cuando tenga tiempo te hago un copy & paste, me ha encantado enserio
Casidiablo dice:
Diciembre 5th, 2007 a las 11:40 am
Estoy de acuerdo con lo que dices… la cosa es más para que “sepan qué existe, y cómo se usa”.
Un saludo!
CESARMSDN dice:
Septiembre 6th, 2008 a las 1:07 pm
ERES LOS MAXIMO CUATE ENSEÑANDO
SUERTE”"”!!!
Diego dice:
Septiembre 27th, 2008 a las 8:45 am
tus ejemplos son lo maximo, tienes la mejor metodologia amigo; saludos desde Peru!!
Eduardo dice:
Diciembre 19th, 2008 a las 8:51 pm
Bueno, pues solo agradecerte por estos ejemplos que me han servido de muuuuucho no sabes cuanto.