lunes, 9 de noviembre de 2009

Sentencia do-while

La sentencia do-while se caracteriza porque permite repetir un bloque de instrucciones varias veces, ejecutándose obligatoriamente al menos 1 vez. Por lo que se puede ver que es muy similiar a la sentencia while, con la diferencia del número mínimo de veces que se ejecuta el bloque de instrucciones que contiene.

La condición que se establece se evalúa después de ejecutar el bloque de instrucciones que contiene la instrucción do-while.

Se debe utilizar el siguiente formato:

    do
    {
       BloqueDeSentencias;
    } while (condición);
Como siempre, si el bloque de sentencias está formado por una única sentencia, se puede prescindir de las llaves, y hay que destacar que termina con un punto y coma, a diferencia de la sentencia while.

El orden de ejecución de una sentencia do-while es la siguiente:
  1. Ejecutar el bloque de sentencias.
  2. Evaluar la condición.
    • Si el resultado es true, volver al punto 1.
    • Si el resultado es false ir al punto 3.
  3. Continuar la ejecución del programa.
Ejemplo: Generar la secuencia de números siguiente: 1 2 4 7 11 16 22 etc. En ella, se va incrementando cada vez una unidad más respecto a la anterior. La secuencia se debe generar hasta que se alcance el valor máximo que indique el usuario:

ejemploWhile
public class EjemploDoWhile extends javax.swing.JFrame
{

    public EjemploDoWhile()
    {
        initComponents();
    }

    /* Código generado automáticamente no mostrado */

    private void botónGenerarActionPerformed(java.awt.event.ActionEvent evt)                                            
    {                                                
        int numMax = Integer.valueOf(campoMáximo.getText());
        int numActual = 1;
        int incremento = 1;
       
        areaMensajes.setText("");
        do
        {
            areaMensajes.append(String.valueOf(numActual) + " ");
            numActual+=incremento;
            incremento++;
        }while (numActual <= numMax);
    }                                            

    public static void main(String args[])
    {
        java.awt.EventQueue.invokeLater(new Runnable()
        {

            public void run()
            {
                new EjemploDoWhile().setVisible(true);
            }
        });
    }

    private javax.swing.JTextArea areaMensajes;
    private javax.swing.JButton botónGenerar;
    private javax.swing.JTextField campoMáximo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
}
En este ejemplo conviene observar que si el usuario introduce el valor 0 o cualquier valor negativo, el programa entrará una vez en el bloque de sentencias de la instrucción do-while, mostrando el valor 1.

No hay comentarios:

Publicar un comentario

 

Contador de visitas