Qual a forma de usar a estrutura de repetição For..in?
Esta estrutura de repetição, opção ao "For..to..do", consiste em varrer uma coleção de dados, e então permite ao programador definir operações específicas com cada um dos dados obtidos.
Vamos aos exemplos de uso:
1º) Usando "String"
const Nome = 'Brasil'
var
_letra: char
for _letra in Nome do
showmessage( _letra ) ;
neste exemplo, defini uma constante de caracteres ("Brasil"). Na sequência defini uma variável do tipo 'char'.
O For..in internamente, identifica cada um dos dados na coleção referenciada após o in, e então a cada iteração é atribuída a variável antes do in, o dado em foco, algo assim:
na primeira iteração
[ B ] rasil
_letra := 'B'
na segunda iteração
B [ r ] asil
_letra := 'r'
na terceira iteração
Br [ a ] sil
_letra := 'a'
_letra := 'a'
na quarta iteração
Bra [ s ] il
_letra := 's'
_letra := 's'
na quinta iteração
Bras [ i ] l
_letra := 'i'
na sexta iteração
Brasi [ l ]
_letra := 'l'
ou seja, a variável que recebe o dado contido na coleção, deve corresponder à menor parcela desta coleção. Neste exemplo, a constante é uma cadeia de caracteres, ou seja, uma String, sendo necessário que a variável "_letra" seja do tipo char.
2º) Usando "Integer"
no caso do trato de "integer" é necessário passar um array visto que se passemos um número "direto", como:
e tentasse varrer via For..in o compilador iria entender que não existe coleção mas sim um número qualquer.
Desta forma torna-se necessário separar os números em memória e atribuí-los ao mesmo identificador, no caso, a constante "Numeros".
O funcionamento de varredura é exatamente o mesmo aplicado no primeiro exemplo.
Espero que este conteúdo seja útil!
Até +
_letra := 'i'
na sexta iteração
Brasi [ l ]
_letra := 'l'
ou seja, a variável que recebe o dado contido na coleção, deve corresponder à menor parcela desta coleção. Neste exemplo, a constante é uma cadeia de caracteres, ou seja, uma String, sendo necessário que a variável "_letra" seja do tipo char.
2º) Usando "Integer"
const Numeros: array [0..2] of integer = ( 1, 2, 3 ) ;
var
_numero: integer
for _numero in Numeros do showmessage( IntToStr( _numero ) ) ;
no caso do trato de "integer" é necessário passar um array visto que se passemos um número "direto", como:
Numeros = 123
e tentasse varrer via For..in o compilador iria entender que não existe coleção mas sim um número qualquer.
Desta forma torna-se necessário separar os números em memória e atribuí-los ao mesmo identificador, no caso, a constante "Numeros".
O funcionamento de varredura é exatamente o mesmo aplicado no primeiro exemplo.
Espero que este conteúdo seja útil!
Até +
Nenhum comentário:
Postar um comentário