NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigos › ASP 3.0 › Capítulo 02 : 07
Quer receber novidades e e-books gratuitos?
  « Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
SITES DINÂMICOS COM ASP 3.0 - CURSO COMPLETO
Autor: Júlio Battisti


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


Lição 019 - Capítulo 02 - Estruturas para controle de fluxo em VBScript

Para que possamos criar aplicações com utilidade prática, aplicadas na solução de problemas reais, precisamos poder controlar o fluxo de execução de um script. No VBScript, temos diversas “estruturas” que permitem um controle bastante eficaz do fluxo de execução. Neste item, estaremos estudando diversas destas estruturas.

Estruturas de decisão

Em um primeiro grupo, temos as chamadas estruturas de decisão. São estruturas que realizam um teste lógico, e executam determinados comandos quando o teste resultar verdadeiro, ou um conjunto diferente de comandos, quando o teste resultar falso. Agora passaremos a analisar as estruturas de decisão, disponíveis no VBScript.

A estrutura If ... Then

A estrutura If...Then, é uma das estruturas de decisão mais conhecidas. Toda linguagem implementa esta estrutura. É utilizada para executar determinados comandos, caso uma condição seja verdadeira. A forma geral desta estrutura é a seguinte:

If condição Then
    Comandos a serem executados, caso a condição seja verdadeira.
End IF.

Uma condição é testada, caso a condição seja verdadeira, um ou mais comandos podem ser executados. Considere o exemplo da Listagem 2.19:

Listagem 2.19 – Um exemplo simples da estrutura If...Then

1          <SCRIPT LANGUAGE=vbscript>
2          <!--
3          Dim x, y

4          x=10
5          y=15

6          If x<y Then
7              MsgBox “x é menor do que y”
8          End If

9          -->
10        </SCRIPT>

Neste exemplo, a mensagem “x é menor do que y”, será exibida, uma vez que o teste x<y é verdadeiro, conforme podemos constatar pelos valores atribuídos as variáveis x e y.

A estrutura If ... Then...Else

A estrutura If...Then...Else, acrescenta mais uma possibilidade a estrutura If...Then. É utilizada para executar determinados comandos, caso uma condição seja verdadeira, ou um conjunto diferente de comandos, caso a condição seja falsa. A forma geral desta estrutura é a seguinte:

If condição Then
    Comandos a serem executados, caso a condição seja verdadeira.
Else
     Comandos a serem executados, caso a condição seja falsa.
End IF.

Uma condição é testada, caso a condição seja verdadeira, um determinado comando, ou conjunto de comandos será executado; caso a condição seja falsa, um comando, ou conjunto de comandos diferentes, será executado. Considere o exemplo da Listagem 2.20:

Listagem 2.20 – Um exemplo simples da estrutura If...Then...Else

1          <SCRIPT LANGUAGE=vbscript>
2          <!--
3          Dim x, y

4          x=15
5          y=10

6          If x<y Then

  1. MsgBox “x é menor do que y”

8          Else
9              MsgBox “x é maior do que y”
10        End If

11        -->
12        </SCRIPT>

Neste exemplo, a mensagem “x é maior do que y”, será exibida, uma vez que o teste x<y é falso, conforme podemos constatar pelos valores atribuídos as variáveis x e y.

A estrutura If ... Then...ElseIf...Else

A estrutura If...Then...ElseIf, nos dá uma poder maior, para testarmos diversas possibilidades. É utilizada quando precisamos realizar mais do que um teste lógico. Neste caso, para cada novo teste que se faça necessário, utilizamos um ElseIf. A forma geral desta estrutura é a seguinte:

If condição Then
    Comandos a serem executados, caso a condição seja verdadeira.
ElseIf condição-2
     Comandos a serem executados, caso a condição2 seja verdadeira.
ElseIf condição-3
     Comandos a serem executados, caso a condição3 seja verdadeira.
...
ElseIf condição-n
     Comandos a serem executados, caso a condição n seja verdadeira.
Else
     Comandos a serem executados, caso nenhuma das condições anteriores seja verdadeira.
End IF.

Uma condição é testada, caso a condição seja verdadeira, um determinado comando, ou conjunto de comandos será executado; caso a condição seja falsa, podemos fazer um segundo teste (condição-2). Caso a segunda condição seja verdadeira, um determinado comando, ou conjunto de comandos será executado, a assim por diante, para n condições. Caso nenhuma das condições seja verdadeira, os comandos após a cláusula Else, serão executados. Considere o exemplo da Listagem 2.21:

Listagem 2.21 – Um exemplo simples da estrutura If...Then...ElseIf...Else

1          <SCRIPT LANGUAGE=vbscript>
2          <!--
3          Dim x, y
4          Dim z, k
5          Dim w, p

6          x=35
7          y=30
8          z=25
9          k=20
10        w=15
11        p=10

12        If x<y Then
13           MsgBox  “x é menor do que y”
14        ElseIf   x<z  Then
15            MsgBox  “x é menor do que z”
16        ElseIf   x<k  Then
17            MsgBox  “x é menor do que 4”
18        ElseIf   x<w  Then
19            MsgBox  “x é menor do que w”
20        ElseIf   x<p  Then
21            MsgBox  “x é menor do que p”
22        Else
23            MsgBox  “x é o maior dos números”
24        End If

25        -->
26        </SCRIPT>

Neste exemplo, a mensagem “x é maior dos números”, será exibida, uma vez que todos os testes falham (pois x é o maior número), é executado o comando da linha 23, logo abaixo do Else.

Mas o que acontece, quando um dos ElseIf é verdadeiro ?

Os teste vão sendo feitos. Quando o teste de um dos ElseIf for verdadeiro, os comandos abaixo do ElseIf verdadeiro, serão executados e o laço será encerrado. Em resumo, quando um dos ElseIf apresentar um teste verdadeiros, os comandos relacionados serão executados, e os demais não serão avaliados, seguindo a execução para o primeiro comando, após o End If.

A estrutura Select...Case

Quando precisamos realizar uma série de testes, é mais eficiente utilizarmos uma estrutura Select...Case, do que utilizarmos uma série de testes utilizando a estrutura If...Then...ElseIf.
O funcionamento da estrutura Select...Case, é bastante intuitivo. Considere o exemplo da Listagem 2.22:

Listagem 2.22 – Um exemplo simples da estrutura Select...Case.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--
3          Dim x
4          x=10   

5          Select Case x
6          Case 2
7              MsgBox “X vale 2 !”
8          Case 4
9              MsgBox “X vale 4 !”
10        Case 6
11            MsgBox “X vale 6 !”
12        Case 8
13            MsgBox “X vale 8 !”
14        Case 10
15            MsgBox “X vale 10 !”
16        Case Else
17            MsgBox “X não é um número par, menor do que 12 ”
18        End Select
19        -->
20        </SCRIPT>

A estrutura Select Case x, vai testar o valor de x. Em cada um dos Case, o valor de x está sendo testado. Quando for encontrado um valor coincidente com o de x, os comandos abaixo deste Case serão executados. No nosso exemplo, o comando MsgBox “X vale 10 !”, abaixo de Case 10, será executado. O comando abaixo do Case Else somente será executado, se todos os testes anteriores falharem.

O uso da estrutura Select...Case, torna o código mais eficiente e de mais fácil leitura.

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. Para isso, utilizamos as chamadas estruturas de repetição, ou Laços. A partir de agora, estaremos analisando 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 para um determinado valor. 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 da Listagem 2.23:

Listagem 2.23 – Um exemplo simples da estrutura For...Next.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10
5          Soma=0

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

7          For i=1 to x
8                      Soma = Soma +i
9          Next   
10        MsgBox “Valor da Soma = “ & Soma
11        -->
12        </SCRIPT>

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, conforme indicado pela Figura 2.26.

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.26 A 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. Considere o exemplo da Listagem 2.24:

Listagem 2.24 – Um exemplo simples da estrutura For...Next.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10
5          Soma=0

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

7          For i=1 to x  Step 2
8                      Soma = Soma +i
9          Next   
10        MsgBox “Valor da Soma = “ & Soma
11        -->
12        </SCRIPT>

Com este Script, obtemos o resultado indicado na Figura 2.27:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.27 A soma dos 5 primeiros números ímpares.

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
            ‘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 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 da Listagem 2.25:

Listagem 2.25 – Um exemplo simples da estrutura de laço Do While Condição...Loop.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10

  1. Contador=1

6          Soma=0

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

8          Do While Contador <= x
9              Soma = Soma + Contador
10             Contador = Contador + 1
11        Loop

12        MsgBox “Valor da Soma = “ & Soma
13        -->
14        </SCRIPT>
Com esse script, obtemos o resultado indicado na Figura 2.28:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.28 A soma dos 10 primeiros números inteiros.

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

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 da Listagem 2.26:

Listagem 2.26 – Um exemplo simples da estrutura de laço Do... Loop While Condição.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10

  1. Contador=1

6          Soma=0

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

8          Do
9               Soma = Soma + Contador
10             Contador = Contador + 1
11        Loop While Contador <= x

12        MsgBox “Valor da Soma = “ & Soma
13        -->
14        </SCRIPT>

Com esse script, obtemos o resultado indicado na Figura 2.29:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.29 A soma dos 10 primeiros números inteiros.

Vamos modificar um pouco o nosso exemplo. Considere o exemplo mostrado na Listagem 2.27:

Listagem 2.27 – Um exemplo simples da estrutura de laço Do... Loop While Condição, um pouco modificado.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10

  1. Contador=11

6          Soma=0

7          ‘ O laço será executado uma única vez, pois a condição
8          ‘ Contador < x é falsa.

9          Do
10             Soma = Soma + Contador
11             Contador = Contador + 1
12        Loop While Contador <= x

13        MsgBox “Valor da Soma = “ & Soma
14        -->
15        </SCRIPT>

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, 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, a linha 10 atribui o valor 11 para a variável Soma. Com isso, o valor exibido para a variável Soma, será 11, indicado na Figura 2.30:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.30 Resultado obtido, com uma única execução do laço.

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 da Listagem 2.27:

Listagem 2.28 – Um exemplo simples da estrutura de laço Do Until Condição...Loop.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10

  1. Contador=1

6          Soma=0

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

8          Do Until Contador > x
9               Soma = Soma + Contador
10             Contador = Contador + 1
11        Loop

12        MsgBox “Valor da Soma = “ & Soma
13        -->
14        </SCRIPT>

Com esse script, obtemos o resultado indicado na Figura 2.31:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.31 A soma dos 10 primeiros números inteiros.

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 da Listagem 2.28:

Listagem 2.29 – Um exemplo simples da estrutura de laço Do... Loop Until Condição.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10

  1. Contador=1

6          Soma=0

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

8          Do
9               Soma = Soma + Contador
10             Contador = Contador + 1
11        Loop Until Contador > x

12        MsgBox “Valor da Soma = “ & Soma
13        -->
14        </SCRIPT>

Com esse script, obtemos o resultado indicado na Figura 2.32:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.32 A soma dos 10 primeiros números inteiros.

Vamos modificar um pouco o nosso exemplo. Considere o exemplo mostrado na Listagem 2.30:

Listagem 2.30 – Um exemplo simples da estrutura de laço Do... Loop Until Condição, um pouco modificado.

1          <SCRIPT LANGUAGE=vbscript>
2          <!--

3          Dim x
4          x=10

  1. Contador=11

6          Soma=0

7          ‘ O laço será executado uma única vez, pois a condição
8          ‘ Contador >= x é verdadeira.

9          Do
10             Soma = Soma + Contador
11             Contador = Contador + 1
12        Loop Until Contador >= x

13        MsgBox “Valor da Soma = “ & Soma
14        -->
15        </SCRIPT>

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, a linha 10 atribui o valor 11 para a variável Soma. Com isso, o valor exibido para a variável Soma, será 11, indicado na Figura 2.33:

Curso Completo de ASP 3.0 - Júlio Battisti
Figura 2.33 Resultado obtido, com uma única execução do laço.


Promoção: Livro Windows Server 2012 R2 e Active Directory - Curso Completo, 2100 Páginas. Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

Promoção: Livro Windows Server 2012 R2 e Active Directory

Curso Completo, 2100 páginas.

Tudo para você se tornar um administrador de redes altamente qualificado para o mercado de trabalho e levar a sua carreira para o próximo nível!

MAIS DETALHES | COMPRAR ESTE LIVRO


  « Lição anterior Δ Página principal ¤ Capítulos Próxima lição »
Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI