"Artigo traduzido da versão em inglês do Delphi Basics. A palavra-chave “FOR” inicia um ciclo de controle, que é executado um número finito de vezes. A variável é definida como o resultado da expressão 1.
Se o resultado for inferior ou igual ao resultado da segunda expressão (quando especificada), assim, a instrução é executada. A variável é então incrementada por 1 e o processo é repetido até que o valor da variável exceder o valor de expressão 2.
Para a técnica downto, o valor da variável é verificado como sendo maior do que ou igual à segunda expressão, e o seu valor é decrementado no final do laço for. As expressões podem resultar em qualquer tipo ordinal – Integers, Characters ou Enumerations. A Declaração for pode compreender uma única linha, ou um conjunto de instruções com um bloco de início (begin) / fim (end)."
Confira alguns exemplos da utilização do laço For no Delphi:
Integer com loop em For
// Full Unit code.
// ———————————————————–
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
SysUtils,
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
// ———————————————————–
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
SysUtils,
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
// Loop 5 times
For i := 1 to (10 div 2) do
ShowMessage(‘i = ‘+IntToStr(i));
end;
end.
// Loop 5 times
For i := 1 to (10 div 2) do
ShowMessage(‘i = ‘+IntToStr(i));
end;
end.
Char com loop em For
// Full Unit code.
// ———————————————————–
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
procedure TForm1.FormCreate(Sender: TObject);
var
c : char;
begin
// Loop 5 times – downwards
For c := ‘E’ downto ‘A’ do
ShowMessage(‘c = ‘+c);
end;
end.
// ———————————————————–
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
procedure TForm1.FormCreate(Sender: TObject);
var
c : char;
begin
// Loop 5 times – downwards
For c := ‘E’ downto ‘A’ do
ShowMessage(‘c = ‘+c);
end;
end.
Enumeration com loop em For
// Full Unit code.
// ———————————————————–
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
SysUtils,
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
procedure TForm1.FormCreate(Sender: TObject);
var
suit : (Hearts, Clubs, Diamonds, Spades);
begin
// Loop 3 times
For suit := Hearts to Diamonds do
ShowMessage(‘Suit = ‘+IntToStr(Ord(suit)));
end;
end.
// ———————————————————–
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
unit Unit1;
interface
uses
SysUtils,
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm} // Include form definitions
procedure TForm1.FormCreate(Sender: TObject);
var
suit : (Hearts, Clubs, Diamonds, Spades);
begin
// Loop 3 times
For suit := Hearts to Diamonds do
ShowMessage(‘Suit = ‘+IntToStr(Ord(suit)));
end;
end.
0 comentários:
Postar um comentário