lacosderepeticao

/ Tutoriais

Actionscript 3 Básico – Laços de repetição

Tutorial

Laços de repetição constituem uma recurso das linguagens de programação para a realização de tarefas repetitivas. Os laços permitem a execução de um conjunto de comandos repetitivamente enquanto uma condição se estabelecer.

Imagine por exemplo um Website que carrega, em sua galeria de fotos, as imagens presentes em um arquivo XML, ou a lista de imagens presentes num arquivo de texto (na sessão intermediário você encontra artigos descrevendo como carregar arquivos XML).

Não sabemos quantas imagens estarão no XML, a quantidade será variável. Dessa forma, precisamos de um mecanismo para carregar as imagens enquanto houver imagens.

Observe que nesse exemplo, temos um processo a se repetir (carregar as imagens) e uma condição (enquanto houver imagens).

Para execução desse tipo de tarefa o Action Script nos fornece os laços de repetição, dentre os quais destacam-se o laço while (que significa enquanto) e o laço for (que significa para). Vejamos a sintaxe deles:

Vamos a um exemplo simples. Vamos criar uma função para calcular o fatorial de um número. O fatorial de um número é o próprio número multiplicado por todos os seus antecessores positivos. Por exemplo, o fatorial de 3 e 3 x 2 x 1 = 6. O fatorial de 5 é 5 x 4 x 3 x 2 x 1 = 120.

Observamos nesse exemplo, que trata-se de uma tarefa repetitiva, onde iremos empregar um laço de repetição. A tarefa a se repetir é a multiplicação e a condição é que o valor a ser mutiplicado seja maior que zero.

Vamos para o Flash. Criarei dois campos de texto no stage. Um será do tipo input text (chamarei ele de fatorial_txt), e será usado para que o usuário digite o valor o qual ele deseja calcular o fatorial. O outro será um dynamic text (chamarei ele de resultado_txt) e será usado para que mostremos ao usuário o resultado. Criarei também um botão (de nome calcular_btn). Quando o usuário clicar nesse botão o cálculo será realizado (o arquivo com o exemplo está disponível para download no fim do tutorial):

Criando os campos de texto.

Criando os campos de texto.

Vamos ao código:

Na linha 06 verificamos se o campo de texto input foi preenchido pelo usuário. Caso não tenha sido, exibimos a mensagem “Informe o valor.” no campo de texto fatorial_txt. Na linha 14 recuperamos o valor digitado pelo usuário. Veja que temos que fazer uma conversão (também chamada cast), usando o comando “int(alvo)”. Isso porque o que o usuário digita em um campo de texto assume o tipo textual (String), e não podemos realizar operações matemáticas em uma String. Assim armazenamos na variável valor o que foi digitado pelo usuário, mas em formato numérico.

Na linha 21 executamos o laço while. Assim, tudo que estiver dentro deste laço (o que é definido pelas chaves { }), vai se repetir enquanto a condição estabelecida entre os parênteses for verdadeira.

Vamos fazer uma simulação para entendermos melhor. Vamos supor que o usuário digite 3 e clique em calcular. A variável resultado é iniciada como 1 e o valor como 3.

Primeira repetição: a condição é satisfeita, tendo em vista que o valor é 3, sendo maior que 0. A linha 24 faz o resultado passar a valer 3. A linha 27 faz o valor valer 2.

Segunda repetição: a condição é satisfeita, tendo em vista que o valor é 2, sendo maior que 0. A linha 24 faz o resultado passar a valer 6. A linha 27 faz o valor valer 1.

Terceira repetição: a condição é satisfeita, tendo em vista que o valor é 1, sendo maior que 0. A linha 24 faz o resultado passar a valer 6. A linha 27 faz o valor valer 0.

Quarta repetição: a condição não é satisfeita, tendo em vista que o valor é 0, não sendo maior que 0. O laço de repetição termina.

O laço for também poderia ser utilizado para solucionar esse mesmo problema. Veja como seria (apenas o trecho do laço de repetição):

O laço for é mais compacto. Veja que em apenas uma linha eu consigo declarar e iniciar a variável resultado, estabelecer a condição do laço (valor > 0) e determinar um comando para ser executado a cada repetição (valor–). O comando “valor–;” equivale a “valor = valor – 1;” assim como “valor++;” equivale a “valor = valor + 1;” São apenas formas compactas de se escrever essas idéias.

Nos tutoriais da sub-categoria Intermediário encontraremos exemplos mais completos, que usarão os conceitos aprendidos. Caso tenha alguma dúvida, fique a vontade em postar! Até o próximo tutorial!

Tutorial laços de repetição em Actionscript 3.



Arivan Bastos

Analista de sistemas, desenvolvedor Web e de games. Possui domínio de PHP, SQL e ActionScript 3. Possui conhecimentos avançados em Starling Framework, Corona SDK e Yii Framework. Atua na Virtualize na criação de sites, desenvolvimento de jogos, desenvolvimento de aplicativos mobile e desenvolvimento de aplicativos para redes sociais.