loop while - continuação




A condição avaliada num loop pode ser qualquer expressão válida em C++, incluindo expressões construídas com o uso de operadores lógicos &&, ||, ! :


Uma das instruções que compõem um bloco de códigos do corpo de um loop while pode ser outro laço while. A essa situação denominamos laços while aninhados.


O exemplo a seguir leva um Button e dois Labels no Form. Quando o usuário der um clique no Button, uma sequência de loops será executada, mostrando o resultado final nos Labels:




//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1->Caption = "";
Label2->Caption = "";

        bool bl = true; // variável que nos dará uma das formas de encerrar o loop
        int i = 0; // variável para avaliação no primeiro loop
        int j2 = 0; /* variável que contará o total de
                     vezes que o segundo loop executará */

/*enquanto i for menor ou igual a 10 e bl for verdadeira*/
        while(i <= 10 && bl == true)
        {
                i++; // incrementa i (i = i + 1)

                /*Label1 exibirá o número de vezes que o primeiro loop rodará*/
                Label1->Caption = Label1-> Caption + "  " + i;

                int j = 10; // variável para avaliação no segundo loop

                while(j >= 0)  /*enquanto j for maior ou igual a zero*/
                        {
                        j--; // decrementa j (j = j - 1)
                        j2++; // incrementa j2

                /*Label1 exibirá o número de vezes que o segundo loop rodará*/
                        Label2->Caption = Label2->Caption + "  " + j2;
                        }

                        /*condição para forçar o encerramento do loop
                        antes de a variável i ser igual a 10*/
                        if (i >= 4 && j <= 6)
                        {
                        bl = false;
                        }
        }

}
//---------------------------------------------------------------------------

anterior

índice

próxima


HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO