Vamos estudar nessa aula a Iteração, Estrutura de Repetição, looping, Laço de Repetição, Laços Condicionais ou como você preferir chama-los! |
INTRODUÇÃO À ITERAÇÃO
Iterar é a ação de repetir algo. Na programação, iteração significa a repetição de um conjunto de instruções por uma quantidade finita de vezes ou então, enquanto uma condição seja aceita.
Há várias formas para falarmos sobre a iteração, por exemplo: Iteração, Estrutura de Repetição, looping, Laço de Repetição, Laços Condicionais, repetição e etc. Todos as nomenclaturas acima são utilizadas para nos referir às estruturas das linguagens que tem o propósito de repetir um mesmo bloco de código, por uma quantidade finita de vezes, ou enquanto uma condição for verdadeira.
Toda linguagem de programação possui no mínimo uma forma de iteração.
É comum que os iniciantes não enxerguem onde esse tipo de estrutura é utilizada e isso é normal! Então, vamos utilizar um exemplo para tentar demonstrar o seu uso e importância.
CASO DE USO
Vamos supor que tenhamos uma lista de nomes, como por exemplo, a lista a seguir:
fulano ciclano beltrano
Agora, vamos supor que queiramos utilizar esses nomes, porém, precisamos que os mesmos estejam em letras maiúsculas. Assim, vamos criar um código que deve ser executado transformando o nome de caracteres minusculos para maiúsculos. Observe que esse código é o mesmo, indiferente do nome, ou então, indiferente seja o item contido na lista acima.
DESSA FORMA TEMOS que precisamos que um mesmo bloco de código seja executado para cada elemento contido na lista de nomes acima! Ou seja, vamos criar um único código e executa-lo a quantidade de vezes que precisarmos, ou então, a quantidade de itens existentes na lista.
EXEMPLO UTILIZANDO PYTHON
No código a seguir, temos um exemplo utilizando a estrutura de repetição while, que numa tradução livre, significa, enquanto.
#coding: utf-8
num = 0
while(num < 10):
print(num)
num += 1
O código acima, inicialmente declara uma variável de nome num
e inicializa-a com o valor literal 0
. Em seguida, com a instrução while
é definido uma Estrutura de Repetição e essa será repetida enquanto a condição definida entre parêntesis, no cabeçalho da estrutura while
for verdadeiro.
É importante observar, que a condição definida no cabeçalho da estrutura while
só deixará de ser verdadeira, porque o valor da variável num
é incrementado toda vez que o bloco de instrução é executado, do contrário, teríamos um laço de repetição infinito e que faria o nosso programar travar, congelar - entrar em looping!
A REPETIÇÃO DE FORMA PRIMITIVA
A forma mais primitiva que as linguagens de programação dispunham para a repetição de um mesmo bloco se dava com o uso das instruções goto
, que numa tradução livre significa algo como vá para.
Algumas linguagens obrigava-nos a definir o número da linha para qual desejamos saltar, outras, permitiam a definição de label
, isto é, nomes, para então, com a instrução goto
, pularmos para a linha de um respectivo label
.
Desta forma, se desejassemos repetir um mesmo bloco, tínhamos que pular para o início do label
e assim, repetir as instrução enquanto fosse necessário, por exemplo.
label REPETIÇÃO:
linha1;
linha2;
linha3;
SE (TRUE)
goto REPETICAO;
SENÃO
instrucao
No código acima, um pouco escrito em Português e outra parte em Inglês, temos como as 3 últimas linhas de código, uma estrutura de seleção, onde uma condição é verificada e, caso a expressão seja verdadeira, o cursos de execução do programa saltará para linha onde o label
está declarado. Do contrário, o bloco SENÃO
é executado e a execução seguirá normalmente.
A RECURSIVIDADE COMO LAÇO DE REPETIÇÃO
Recursividade significa a invocação de uma função por ela mesma, ou seja, é toda função que invoca a si mesma. Essa é uma prática perigosa de trabalho e que pode facilmente travar nossos programas, ou então, estourar a pilha de execução, isto é, podemos obter o famoso erro stack overflow error que, nada mais é do que o limite máximo de vezes que uma função pode chamar a si mesma.
A seguir, temos um exemplo em Português, onde trabalhamos com o conceito de recursividade.
func minhaFunção(val):
linha 1
linha 2
linha 3
val = val + 1
SE( val < 10 ):
minhaFunção( val )
SENÃO:
exit(0)
minhaFunção(0)
No código acima, definimos uma função de nome minhaFunção()
e estamos invocando-a na última linha do código, ou seja, estamos invocando a função após a sua definição.
A partir do momento que invocamos a função minhaFunção()
, estamos também, enviando como argumento um valor literal inteiro igual a 0
. Esse valor é recebido como parâmetro pelo argumento val
. Agora, estando dentro da função, algumas linhas são executadas, e então, a variável val
recebe o valor dela mesma, acrescido de 1 unidade.
Feito isso, uma condição é verificada e, caso o valor da variável val
seja menor do que o valor inteiro literal 10
, o bloco de instrução verdadeiro será executado, e este, contém uma única instrução que invoca a função novamente passando como parâmetro o valor contido na variável val
.
Do contrário, isto é, caso o valor da variável val
seja igual ou maior do que 10
, então, é executado a instrução exit()
e o bloco de instrução é finalizado.
Neste exemplo, podemos ver como um mesmo bloco é executado por diversas vezes e somente quando a condição definida dentro do próprio bloco deixar de ser verdadeira, é que a execução será interrompida. Do contrário, o ciclo continuara sua execução, de maneira indefinida.
BLOCO DE INSTRUÇÃO
O Bloco de Instrução é o conjunto de instrução que SEMPRE está na sequência das estruturas e sempre estarão na indentação, um nível hierarquico a frente da definição da estrutura.
CICLO OU LAÇO
O ciclo é o nome chamado a uma única repetição do bloco de instrução.
Do dicionários Aurélio, temos que ciclo significa: "Série de fenômenos que se sucedem numa ordem determinada"
Então, temos que o bloco de instrução executado por definição, sempre será o mesmo. Assim, devemos pensar no conceito de ciclo para as linguagens de programação, como a execução de um mesmo bloco de código. Talvez, o bloco tenha condições que determinem, conforme a expressão definida, blocos de instruções diferentes, porém, no geral, esse bloco sempre estará contido dentro do bloco de instrução da estrutura de repetição.
ESTRUTURAS DE REPETIÇÃO
As linguagens de programação atuais fornecem meios para a repetição de um bloco de instrução de forma mais simples e menos verbosas do que suas antecessoras. Essa estruturas são, tecnicamente chamadas de Iteradores, isto é, repetidores.
Normalmente, as linguagens disponibilizam um iterador que repetira uma quantia finita de vezes, e outro que repetirá, enquanto uma condição seja verdadeira, ou seja, um repetidor condicional.
ITERADORES EM PYTHON
O Python disponibiliza 2 iteradores, o primeiro e mais simples é o iterador condicional, que repetira um determinado bloco de código enquanto a condição definida no cabeçalho da estrutura for verdadeiro, de nome while
.
O segundo iterador, é o iterador finito, isto é, que repetira por uma quantidade de vezes conhecido previamente que é chamado de for..in
.
EXEMPLO FEITO EM AULA
#coding: utf-8
#=====================================
#========== www.eXcript.com ==========
#=====================================
x = 0
while(x<=10):
print(x)
x += 1
VEJA TAMBÉM
- Aula: Estrutura de Repetição for..in
- Aula: Estrutura de Repetição while(True)
- Aula: Instrução break
- Aula: Instrução continue
Tags curso, python, iteração, estrutura de repetição, looping, laço de repetição, laços condicionais, blog
Comentários
comments powered by Disqus