<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="pt" lang="pt">
<head>
<title>Estrutura de repetição</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Estrutura_de_repetição"/>
<meta name="wx_page_id" content="1453303"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Estrutura de repetição" id="wxsec1"><h1 class="pagetitle" id="wx1">Estrutura de repetição</h1>

<p id="wx2">Em <a href="/wpt/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o" title="Ciência da computação" wx:linktype="known" wx:pagename="Ciência_da_computação" wx:page_id="2683" id="wx3">ciência da computação</a>, uma <b id="wx4">estrutura de repetição</b> é uma <a href="/wpt/Estrutura_de_controle" title="Estrutura de controle" wx:linktype="known" wx:pagename="Estrutura_de_controle" wx:page_id="1455624" id="wx5">estrutura de desvio do fluxo de controle</a> presente em <a href="/wpt/Linguagem_de_programa%C3%A7%C3%A3o" title="Linguagem de programação" wx:linktype="known" wx:pagename="Linguagem_de_programação" wx:page_id="13352" id="wx6">linguagens de programação</a> que realiza e repete diferentes computações ou ações dependendo se uma condição é verdadeira ou falsa, em que a expressão é processada e transformada em um valor <a href="/wpt/Booleano" title="Booleano" wx:linktype="known" wx:pagename="Booleano" wx:page_id="1318606" id="wx7">booleano</a>. Estão associados a uma estrutura de repetição uma condição (também chamada "expressão de controle" ou "condição de parada") e um bloco de código: verifica-se a condição, e caso seja verdadeira, o bloco é executado. Após o final da execução do bloco, a condição é verificada novamente, e caso ela ainda seja verdadeira, o código é executado novamente.</p>

<p id="wx8">Deve-se observar que, caso o bloco de código nunca modificar o estado da condição, a estrutura será executada para sempre, uma situação chamada "laço infinito". Da mesma forma, é possível especificar uma estrutura em que o bloco de código modifica o estado da condição, mas esta é sempre verdadeira.</p>

<p id="wx9">Algumas linguagens de programação especificam ainda uma palavra reservada para sair da estrutura de repetição de dentro do bloco de código, "quebrando" a estrutura. Também é oferecido por algumas linguagens uma palavra reservada para terminar uma iteração específica do bloco de código, forçando nova verificação da condição.</p>

<div id="wx_toc"/>

<a id="Repeti.C3.A7.C3.A3o_pr.C3.A9-testada" name="Repeti.C3.A7.C3.A3o_pr.C3.A9-testada"/>
<wx:section level="2" title="Repetição pré-testada" id="wxsec2"><h2 id="wx10">Repetição pré-testada</h2>

<p id="wx11">A construção "enquanto" (também chamada "repetição pré-testada") é a mais difundida estrutura de repetição, e sua estrutura básica é a seguinte:</p>

<pre id="wx12">
Enquanto (condição) Faça
    (bloco de código)
Fim Enquanto
</pre>

<p id="wx13">Nesta estrutura, a condição é primeiramente verificada, e se for verdadeira o bloco é executado. No final de execução do bloco a condição é novamente testada.</p>

<a id="Repeti.C3.A7.C3.A3o_p.C3.B3s-testada" name="Repeti.C3.A7.C3.A3o_p.C3.B3s-testada"/>
</wx:section><wx:section level="2" title="Repetição pós-testada" id="wxsec3"><h2 id="wx14">Repetição pós-testada</h2>

<p id="wx15">A construção "repita enquanto" (também chamada "repetição pós-testada") é uma variação da construção anterior, e difere pois a verificação da condição é feita após uma execução do bloco. Sua estrutura básica é a seguinte:</p>

<pre id="wx16">
Repita
    (bloco de código)
Enquanto (condição)
</pre>

<p id="wx17">Nesta estrutura, o bloco de código é primeiramente executado, e então a condição é verificada, e se for verdadeira o bloco é executado novamente.</p>

<div class="wx_image" wx:align="right" wx:thumb="thumb" id="wx18"><a href="/wpt/Imagem:For-loop-diagram.png" title="Diagrama de fluxo de dados da estrutura &quot;para&quot;: A é a atribuição inicial, B é a condição de parada, D é o bloco de código e C é o incremento do passo" wx:linktype="image" wx:pagename="Imagem:For-loop-diagram.png" id="wx19"><img src="/wpt/Imagem:For-loop-diagram.png" alt="Diagrama de fluxo de dados da estrutura &quot;para&quot;: A é a atribuição inicial, B é a condição de parada, D é o bloco de código e C é o incremento do passo" width="150" id="wx20"/></a> 

<div class="thumbcaption" id="wx21"><a href="/wpt/Diagrama_de_fluxo_de_dados" title="Diagrama de fluxo de dados" wx:linktype="known" wx:pagename="Diagrama_de_fluxo_de_dados" wx:page_id="1245153" id="wx22">Diagrama de fluxo de dados</a>
<p id="wx23">da estrutura "para": A é a atribuição inicial, B é a condição de parada, D é o bloco de código e C é o incremento do passo</p>
</div>
</div>

<a id="Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle" name="Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle"/>
</wx:section><wx:section level="2" title="Repetição com variável de controle" id="wxsec4"><h2 id="wx24">Repetição com variável de controle</h2>

<p id="wx25">A construção "para" (ou "repetição com variável de controle") é uma estrutura de repetição que designa uma variável de controle para cada iteração do bloco, e uma operação de passo a cada iteração. Sua estrutura básica é a seguinte:</p>

<pre id="wx26">
Para (V) De (vi) Até (vf) Passo (p) Faça
    (bloco de código)
Fim Para
</pre>

<p id="wx27">No exemplo acima, V é uma variável de controle, vi é o estado inicial de V e vf é o estado de saída da estrutura de repetição. O passo indica qual será o incremento entre cada iteração do código. No início da estrutura, vi é atribuído à V, e é verificado se V é igual a vf, a condição de parada. Caso não seja, o bloco de código é executado e então o passo é adicionado à V (V = V + p). Segue-se então com nova verificação da condição de parada. O passo é opcional, e caso seja omitido assume-se incremento de uma unidade.</p>

<p id="wx28">Esta estrutura é bastante utilizada para a iteração de vetores, em que cada iteração representa um índice do vetor. Nesse caso, para vetores multidimensionais é possível aninhar este tipo de construção para as diversas dimensões associadas. Por exemplo, para uma estrutura bidimensional como uma matriz, que possui linhas e colunas, a estrutura é exemplificada abaixo:</p>

<pre id="wx29">
Para (V) De (vi) Até (vf) Faça
    Para (Y) De (yi) Até (yf) Faça
        (bloco de código)
    Fim Para
Fim Para
</pre>

<a id="Itera.C3.A7.C3.A3o_de_cole.C3.A7.C3.A3o" name="Itera.C3.A7.C3.A3o_de_cole.C3.A7.C3.A3o"/>
</wx:section><wx:section level="2" title="Iteração de coleção" id="wxsec5"><h2 id="wx30">Iteração de coleção</h2>

<p id="wx31">A estrutura "para cada" é usada para iterar itens de uma coleção, sendo uma especialização da estrutura "para". Menos flexível que a estrutura "para", esta estrutura torna implícita a atribuição inicial e o incremento do passo, e determina que a condição de parada é somente a situação no qual todos os elementos do conjunto já foram iterados. Sua estrutura básica é:</p>

<pre id="wx32">
Para Cada (item) De (conjunto) Faça
    (bloco de código)
Fim Para
</pre>

<a id="Refer.C3.AAncias" name="Refer.C3.AAncias"/>
</wx:section><wx:section level="2" title="Referências" id="wxsec6"><h2 id="wx33">Referências</h2>

<ul id="wx34">
<li id="wx35"><wx:template id="wx_t1" pagename="Predefinição:Citar_web" page_id="485025"/>
<p id="wx36">Valéria Delisandra Feltrim. <i id="wx37"><a href="http://www.din.uem.br/~vfeltrim/fundamentos/EstruturasDeControle(1aParte).pdf" class="external text" wx:linktype="external" rel="nofollow" id="wx38">Estruturas de Controle - Parte 1</a></i>. <a href="/wpt/Universidade_Estadual_de_Maring%C3%A1" title="Universidade Estadual de Maringá" wx:linktype="known" wx:pagename="Universidade_Estadual_de_Maringá" wx:page_id="43311" id="wx39">Universidade Estadual de Maringá</a>. Página visitada em <a href="/wpt/27_de_novembro" title="27 de novembro" wx:linktype="known" wx:pagename="27_de_novembro" wx:page_id="35603" id="wx40">27 de novembro</a> de <a href="/wpt/2007" title="2007" wx:linktype="known" wx:pagename="2007" wx:page_id="24532" id="wx41">2007</a>.<wx:templateend start="wx_t1"/>
</p>
</li>

<li id="wx42"><wx:template id="wx_t2" pagename="Predefinição:Citar_web" page_id="485025"/>
<p id="wx43">Valéria Delisandra Feltrim. <i id="wx44"><a href="http://www.din.uem.br/~vfeltrim/fundamentos/EstruturasDeControle(2aParte).pdf" class="external text" wx:linktype="external" rel="nofollow" id="wx45">Estruturas de Controle - Parte 2</a></i>. <a href="/wpt/Universidade_Estadual_de_Maring%C3%A1" title="Universidade Estadual de Maringá" wx:linktype="known" wx:pagename="Universidade_Estadual_de_Maringá" wx:page_id="43311" id="wx46">Universidade Estadual de Maringá</a>. Página visitada em <a href="/wpt/27_de_novembro" title="27 de novembro" wx:linktype="known" wx:pagename="27_de_novembro" wx:page_id="35603" id="wx47">27 de novembro</a> de <a href="/wpt/2007" title="2007" wx:linktype="known" wx:pagename="2007" wx:page_id="24532" id="wx48">2007</a>.<wx:templateend start="wx_t2"/>
</p>
</li>
</ul>

<a id="Ver_tamb.C3.A9m" name="Ver_tamb.C3.A9m"/>
</wx:section><wx:section level="2" title="Ver também" id="wxsec7"><h2 id="wx49"><wx:template id="wx_t3" pagename="Predefinição:Ver_também" page_id="62492"/>Ver também<wx:templateend start="wx_t3"/></h2>

<ul id="wx50">
<li id="wx51"><a href="/wpt/Estrutura_de_controle" title="Estrutura de controle" wx:linktype="known" wx:pagename="Estrutura_de_controle" wx:page_id="1455624" id="wx52">Estrutura de controle</a></li>

<li id="wx53"><a href="/wpt/Estrutura_seq%C3%BCencial" title="Estrutura seqüencial" wx:linktype="known" wx:pagename="Estrutura_seqüencial" wx:page_id="1453642" id="wx54">Estrutura seqüencial</a></li>

<li id="wx55"><a href="/wpt/Estrutura_de_sele%C3%A7%C3%A3o" title="Estrutura de seleção" wx:linktype="known" wx:pagename="Estrutura_de_seleção" wx:page_id="1453215" id="wx56">Estrutura de seleção</a></li>
</ul>


</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wpt/index.php?title=Especial:Categories&amp;article=Estrutura_de_repeti%C3%A7%C3%A3o" title="Especial:Categories" wx:linktype="known" wx:pagename="Especial:Categories" id="wx57">Categorias de páginas</a>: <span dir="ltr" id="wx58"><a href="/wpt/Categoria:Estruturas_de_controle" title="Categoria:Estruturas de controle" wx:linktype="known" wx:pagename="Categoria:Estruturas_de_controle" wx:page_id="1456867" id="wx59">Estruturas de controle</a></span> | <span dir="ltr" id="wx60"><a href="/wpt/Categoria:%21Artigos_sem_interwiki" title="Categoria:!Artigos sem interwiki" wx:linktype="known" wx:pagename="Categoria:!Artigos_sem_interwiki" wx:page_id="1133291" id="wx61">!Artigos sem interwiki</a></span></div>
<div id="wx_languagelinks">
Outras línguas: <a href="http://cs.wikipedia.org/wiki/While-do_cyklus" class="external" wx:linktype="interwiki" wx:pagename="cs:While-do_cyklus" id="wx62">Česky</a> | <a href="http://da.wikipedia.org/wiki/While-l%C3%B8kke" class="external" wx:linktype="interwiki" wx:pagename="da:While-løkke" id="wx63">Dansk</a> | <a href="http://de.wikipedia.org/wiki/While-Schleife" class="external" wx:linktype="interwiki" wx:pagename="de:While-Schleife" id="wx64">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/While_loop" class="external" wx:linktype="interwiki" wx:pagename="en:While_loop" id="wx65">English</a> | <a href="http://es.wikipedia.org/wiki/Bucle_while" class="external" wx:linktype="interwiki" wx:pagename="es:Bucle_while" id="wx66">Español</a> | <a href="http://eu.wikipedia.org/wiki/While_begizta" class="external" wx:linktype="interwiki" wx:pagename="eu:While_begizta" id="wx67">Euskara</a> | <a href="http://hr.wikipedia.org/wiki/While_petlja" class="external" wx:linktype="interwiki" wx:pagename="hr:While_petlja" id="wx68">Hrvatski</a> | <a href="http://ja.wikipedia.org/wiki/While%E6%96%87" class="external" wx:linktype="interwiki" wx:pagename="ja:While文" id="wx69">日本語</a> | <a href="http://ko.wikipedia.org/wiki/While_%EB%A3%A8%ED%94%84" class="external" wx:linktype="interwiki" wx:pagename="ko:While_루프" id="wx70">한국어</a></div>
</body>
<wx:templatearguments for="wx_t1"><wx:argument name="publicado">
<a href="/wpt/Universidade_Estadual_de_Maring%C3%A1" title="Universidade Estadual de Maringá" wx:linktype="known" wx:pagename="Universidade_Estadual_de_Maringá" wx:page_id="43311" id="wx71">Universidade Estadual de Maringá</a>
</wx:argument></wx:templatearguments>
<wx:templatearguments for="wx_t2"><wx:argument name="publicado">
<a href="/wpt/Universidade_Estadual_de_Maring%C3%A1" title="Universidade Estadual de Maringá" wx:linktype="known" wx:pagename="Universidade_Estadual_de_Maringá" wx:page_id="43311" id="wx72">Universidade Estadual de Maringá</a>
</wx:argument></wx:templatearguments>
<wx:templatearguments for="wx_t3"><wx:argument name="publicado">
<a href="/wpt/Universidade_Estadual_de_Maring%C3%A1" title="Universidade Estadual de Maringá" wx:linktype="known" wx:pagename="Universidade_Estadual_de_Maringá" wx:page_id="43311" id="wx73">Universidade Estadual de Maringá</a>
</wx:argument></wx:templatearguments>
</html>
