www.juliobattisti.com.br
Windows Vista - Curso Completo - 1476 páginas Windows Server 2003 - Curso Completo SQL Server 2005 - Curso Completo 1500 Tutoriais de Informática Windows Vista - Curso Completo - 1476 páginas Curso Completo de Access Certificações Microsoft
Cursos de Informática Cursos Disponíveis Cursos Online Com Certificado Como Comprar?
 Você está aqui: Principal > Cursos > Excel Avançado > Módulo 5 > Lição 13
  :: Autor: Júlio Battisti   :: e-mail: webmaster@juliobattisti.com.br
Lição 13: Estruturas For...Next, Do...While e Do...Until

Estruturas de repetição.

Em determinadas situações, precisamos repetir um ou mais comandos, um número específico de vezes, ou até que uma determinada condição torne-se verdadeira ou falsa. Por exemplo, pode ser que haja a necessidade de percorrer todos os registros de uma determinada tabela, até que o último registro seja alcançado. Para isso, utilizamos as chamadas estruturas de repetição, ou Laços. A partir de agora, aprenderemos as estruturas de repetição disponíveis.

A estrutura For...Next.

Utilizamos o laço For...Next, para repetir um segmento de código, um número determinado de vezes. Utilizamos esta estrutura, quando já sabemos o número de vezes que uma determinada seção de código deve ser repetida. Neste tipo de estrutura, normalmente, utilizamos uma variável como contador. Este contador varia de um valor inicial até um valor final. O Formato geral desta estrutura é o seguinte:

For contador = inicio to fim incremento

Comando1

Comando2

...

Comandon

Next

No início a variável contador tem o valor definido. Em cada passagem do laço, a variável contador é incrementada pelo valor definido em incremento. Caso não seja definido o incremento, será utilizado o padrão 1.

Considere o exemplo a seguir:

Dim x

x=10

Soma=0

' Faz a soma dos 10 primeiros números maiores do que zero

For i=1 to x

Soma = Soma +i

Next

MsgBox "Valor da Soma = " & Soma

Neste exemplo, a variável i inicia com o valor 1. Em cada passo, o valor de i é acrescentado à variável Soma. Como o incremento não foi definido, será utilizado o padrão que é 1. Com isso, ao final do laço For...Next, a variável Soma, terá armazenado o valor da soma dos 10 primeiros números inteiros.

Poderíamos utilizar um valor de incremento diferente de 1, para, por exemplo, obter a soma somente dos números ímpares menores do que 10:

Dim x

x=10

Soma=0

' Faz a soma dos 10 primeiros números ímpares

For i=1 to x Step 2

Soma = Soma +i

Next

MsgBox "Valor da Soma = " & Soma

Com este código, obtemos o resultado indicado na Figura a seguir:

A estrutura Do...Loop.

Esta estrutura pode ser utilizada para repetir um trecho de código, enquanto uma determinada condição for verdadeira, ou até que uma determinada condição torne-se verdadeira . Podemos utilizar dois operadores condicionais diferentes: While ou Until . Os operadores While ou Until, podem ser utilizados de duas maneiras diferentes: No início do laço, ou no final do laço. Com isso temos quatro situações distintas, vamos analisar cada uma delas, a partir de agora.

A estrutura Do While Condição...Loop.

Neste caso, estamos utilizando o operador condicional While, no início do laço. O formato geral, neste caso é o seguinte:

Do While condição/teste

Comando1

Comando2

...

Comandon

Loop

Nesta estrutura, enquanto a condição for verdadeira, o código dentro do laço é executado . Quando a condição tornar-se falsa, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for falsa já na primeira vez, o laço não será executado nenhuma vez.

IMPORTANTE : O Código dentro do laço deve ser capaz de alterar a condição para que essa se torne Falsa, pois caso contrário a condição será sempre verdadeira, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x

x=10

Contador=1

Soma=0

' Faz a soma dos 10 primeiros números maiores do que zero

Do While Contador <= x

Soma = Soma + Contador

Contador = Contador + 1

Loop

MsgBox "Valor da Soma = " & Soma

Observe que dentro do laço, vamos Incrementando o valor da variável Contador, uma unidade para cada passagem do laço. Com isso, quando o valor de Contador, atingir 11, o teste do início do laço torna-se falso, e o laço é encerrado.

A estrutura Do... Loop While Condição.

Neste caso, deslocamos o teste de condição para o final do laço. Com o teste no final do laço, o código dentro do laço, será executado, pelo menos uma vez, pois o teste somente é feito no final, e continuará sendo executado, enquanto a condição for verdadeira. O formato geral, neste caso é o seguinte:

Do

Comando1

Comando2

...

Comandon

Loop While condição/teste

Nesta estrutura, enquanto a condição for verdadeira, o código dentro do laço é executado. Quando a condição tornar-se falsa, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for falsa já na primeira vez, o laço será executado uma única vez.

IMPORTANTE : O Código dentro do laço deve ser capaz de alterar a condição para Falso, quando for necessário, pois caso contrário a condição será sempre verdadeira, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x

x=10

Contador=1

Soma=0

' Faz a soma dos 10 primeiros números maiores do que zero

Do

Soma = Soma + Contador

Contador = Contador + 1

Loop While Contador <= x

MsgBox "Valor da Soma = " & Soma

Vamos modificar um pouco o nosso exemplo. Considere o exemplo mostrado a seguir:

Dim x

x=10

Contador=11

Soma=0

' O laço será executado uma única vez, pois a condição

' Contador < x é falsa.

Do

Soma = Soma + Contador

Contador = Contador + 1

Loop While Contador <= x

MsgBox "Valor da Soma = " & Soma

Qual o valor será exibido para a variável Soma ?

Muito simples. A condição Contador < x é falsa, pois x=10 e Contador=12 (Lembre que o Contador foi incrementado de uma unidade dentro do laço, antes do teste ser realizado). Neste caso, o laço será executado uma única vez, pois o teste de condição está no final do laço. Quando o laço é executado, é atribuído o valor 11 para a variável Soma. Com isso, o valor exibido para a variável Soma, será 11. 

A estrutura Do Until Condição...Loop.

Neste caso, estamos utilizando o operador condicional Until, no início do laço. O formato geral, neste caso é o seguinte:

Do Until condição

Comando1

Comando2

...

Comandon

Loop

Nesta estrutura, enquanto a condição for falsa, o código dentro do laço é executado . Quando a condição tornar-se verdadeira, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for verdadeira, já na primeira vez, o laço não será executado nenhuma vez.

IMPORTANTE : O Código dentro do laço deve ser capaz de tornar a condição Verdadeira, quando for necessário, pois caso contrário a condição será sempre Falsa, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x

x=10

Contador=1

Soma=0

' Faz a soma dos 10 primeiros números maiores do que zero

Do Until Contador > x

Soma = Soma + Contador

Contador = Contador + 1

Loop

MsgBox "Valor da Soma = " & Soma

Observe que dentro do laço, vamos Incrementando o valor da variável Contador, uma unidade para cada passagem do laço. Com isso, quando o valor de Contador, atingir 11, o teste do início do laço torna-se Verdadeiro, e o laço é encerrado.

A estrutura Do... Loop Until Condição.

Neste caso, deslocamos o teste de condição para o final do laço. Com o teste no final do laço, o código dentro do laço, será executado, pelo menos uma vez, pois o teste somente é feito no final, e continuará sendo executado, enquanto a condição for Falsa. O formato geral, neste caso é o seguinte:

Do

Comando1

Comando2

...

Comandon

Loop Until condição

Nesta estrutura, enquanto a condição for Falsa, o código dentro do laço é executado. Quando a condição tornar-se Verdadeira, o primeiro comando após o final do laço, será executado. Neste caso, se a condição for Verdadeira, já na primeira vez, o laço será executado uma única vez.

IMPORTANTE : O Código dentro do laço deve ser capaz de tornar a condição Verdadeira, quando for necessário, pois caso contrário a condição será sempre Falsa, e os comandos dentro do laço ficarão em execução, infinitamente, ou até o programa travar. A criação de laços infinitos, devido a erros de programação, é uma causa comum de erros e travamentos.

Considere o exemplo a seguir:

Dim x

x=10

Contador=1

Soma=0

' Faz a soma dos 10 primeiros números maiores do que zero

Do

Soma = Soma + Contador

Contador = Contador + 1

Loop Until Contador > x

MsgBox "Valor da Soma = " & Soma

Vamos modificar um pouco o nosso exemplo. Considere o exemplo a seguir:

Dim x

x=10

Contador=11

Soma=0

' O laço será executado uma única vez, pois a condição

' Contador >= x é verdadeira.

Do

Soma = Soma + Contador

Contador = Contador + 1

Loop Until Contador >= x

MsgBox "Valor da Soma = " & Soma

Qual o valor será exibido para a variável Soma ?

Muito simples. A condição Contador>= x é falsa, pois x=10 e Contador=12 (Lembre que o Contador foi incrementado de uma unidade, na linha 11, na primeira passagem do laço). Neste caso, o laço será executado uma única vez, pois o teste de condição está no final do laço. Quando o laço é executado, é atribuído o valor 11 para a variável Soma. Com isso, o valor exibido para a variável Soma, será 11.



Voltar ao início


CURSO EM FORMATO DE VÍDEO-AULA
EXEMPLOS PRÁTICOS PASSO A PASSO COM SOM E IMAGEM
Clique no curso para informações detalhadas
Curso Duração Mais informações
DVD - Hardware - Curso Básico 58 h 36 min Clique aqui
DVD - Conversão de Formatos Digitais: Áudio e Vídeo 1 h 26 min Clique aqui
DVD - Curso de Oratória - Falando em Público sem Medo 33 min Clique aqui
Vídeo-Aula - Access 2007 Básico 2 h 1 min Clique aqui
Vídeo-Aula - Aprenda a Criar uma Agenda Telefônica no Excel 40 min Clique aqui
Vídeo-aula - Concursos: Inglês ESAF - Simulados e Provas Comentadas 2 h Clique aqui
Vídeo-Aula - Criação de Sites - Curso Básico 2 h 53 min Clique aqui
Vídeo-Aula - Criando uma Loja Virtual com PHP e MySQL - Curso Completo 19 h Clique aqui
Vídeo-Aula - Curso Autocad 2D 4 h Clique aqui
Vídeo-Aula - Curso Autocad 3D 3 h 45 min Clique aqui
Vídeo-Aula - Curso Avançado de Access 2003 2 h 48 min Clique aqui
Vídeo-Aula - Curso Avançado de Excel 2003 3 h 41 min Clique aqui
Vídeo-Aula - Curso Avançado de Word 2003 1 h 34 min Clique aqui
Vídeo-Aula - Curso Básico de Access 2003 2 h 49 min Clique aqui
Vídeo-Aula - Curso Básico de Excel 2003 3 h 3 min Clique aqui
Vídeo-Aula - Curso Básico de PowerPoint 2003 2 h 22 min Clique aqui
Vídeo-Aula - Curso Básico de Windows XP 2 h 36 min Clique aqui
Vídeo-Aula - Curso Básico de Word 2003 2 h 14 min Clique aqui
Vídeo-Aula - Curso de Microinformática Prática 4 h 35 min Clique aqui
Vídeo-Aula - Curso de Teoria Musical 2 h 50 min Clique aqui
Vídeo-Aula - Curso Prático de Internet 40 min Clique aqui
Vídeo-Aula - Curso Profissional Photoshop 4 h 20 min Clique aqui
Vídeo-Aula - Excel 2007 - Curso Avançado 2 h 30 min Clique aqui
Vídeo-Aula - Excel 2007 - Curso Básico 2 h 35 min Clique aqui
Vídeo-Aula - Excel Para Concursos - Simulados e Provas Comentadas 2 h Clique aqui
Vídeo-Aula - Flash CS3 - Básico e Prático 4 h 45 min Clique aqui
Vídeo-Aula - Flash MX - Curso Básico 2 h 26 min Clique aqui
Vídeo-Aula - Fórmulas e Funções Matriciais no Excel 2 h 30 min Clique aqui
Vídeo-Aula - HTML - Curso Prático 2 h 40 min Clique aqui
Vídeo-Aula - Lógica de Programação - Curso Completo 22 h 15 min Clique aqui
Vídeo-Aula - Lógica de Programação com VB.NET 14 h Clique aqui
Vídeo-Aula - Matemática Financeira - Teoria e Prática 9 h 10 min Clique aqui
Vídeo-Aula - MySQL - Curso Completo e Prático 11 h 30 min Clique aqui
Vídeo-Aula - Outlook Express – Curso Prático 55 min Clique aqui
Vídeo-Aula - PHP + HTML + CSS - Curso Completo 27 h 35 min Clique aqui
Vídeo-Aula - Programação VBA no Excel 2 h 54 min Clique aqui
Vídeo-aula - SQL Server 2005 - Reporting Services 2 h 30 min Clique aqui
Vídeo-Aula - Tudo Sobre Gráficos no Excel 9 h Clique aqui
Vídeo-Aula - Windows XP Básico + Intermediário + Dicas Práticas 8 h Clique aqui
Vídeo-Aula - Word 2007 - Curso Básico 2 h 23 min Clique aqui
Vídeo-Aula interativa: Tudo Sobre Tabelas Dinâmicas no Excel 2003 2 h 30 min Clique aqui
LIVROS CAMPEÕES DE VENDA NO SITE
Dossiê Hacker
Universidade Project
Loja de Livros