Loops VBScript: Do While, Do Until, While, For Each (exemplo)

Por que Loops sรฃo usados โ€‹โ€‹em VBScript?

Os loops sรฃo usados โ€‹โ€‹para executar o mesmo bloco de cรณdigo repetidamente. Existem vรกrios loops em VBScript.ping declaraรงรตes. Algumas das chamadas VBScriptping As declaraรงรตes sรฃo do tipo "Faรงa Enquanto", "Faรงa Atรฉ", "Por... Prรณximo" e assim por diante. Entรฃo, como vocรช decidirรก qual olhar?ping Qual declaraรงรฃo usar para atender ร  sua necessidade?

Ao executar os loops, vocรช pode ou nรฃo saber quantas vezes deseja executar um conjunto de instruรงรตes. Por exemplo, imagine que vocรช queira calcular a soma de dois nรบmeros dez vezes. Nesse caso, vocรช jรก sabe que deseja repetir um bloco de cรณdigo 10 vezes. Suponha que vocรช queira calcular a soma de dois nรบmeros atรฉ que uma determinada variรกvel se torne verdadeira. Aqui, vocรช nรฃo sabe quantas vezes o loop serรก executado. Portanto, dependendo se vocรช sabe ou nรฃo o nรบmero de execuรงรตes, vocรช pode usar diferentes tipos de loops.ping afirmaรงรตes.

Paraโ€ฆPrรณximo banheiroping As instruรงรตes sรฃo usadas quando se deseja repetir um bloco de cรณdigo um nรบmero finito de vezes, ou seja, quando se sabe quantas vezes o bloco de cรณdigo deve ser repetido.

Faรงa enquanto e faรงa atรฉ que o banheiroping As instruรงรตes `if` sรฃo usadas quando vocรช deseja repetir um bloco de cรณdigo atรฉ que uma condiรงรฃo se torne verdadeira ou falsa, ou seja, quando vocรช nรฃo sabe quantas vezes deseja executar o bloco de cรณdigo.

Vamos dar uma olhada nesses banheiros.ping declaraรงรตes uma a uma.

VBScript faz loop while

Se vocรช nรฃo sabe quantas vezes precisa executar um bloco de cรณdigo, estarรก usando loops Do While. Por exemplo, vocรช deseja gerar a mensagem โ€œBem-vindoโ€ enquanto o valor da variรกvel x for menor que 5. Nesse caso, o loop Do While serรก usado.

<script type="text/vbscript">
Dim x
x=1
Do While x<5
document.write("Welcome.")
x=x+1
Loop
</script>

Se vocรช tentar executar o cรณdigo, obterรก uma saรญda como esta:

VBScript faz loop while

O bloco รฉ executado quatro vezes (quando x = 1,2,3 e 4) e o loop termina quando o valor de x se torna 5. Se vocรช esquecer a instruรงรฃo x = x + 1, seu loop se tornarรก interminรกvel. um. Este tipo de loop รฉ conhecido como loops infinitosLoops infinitos podem atรฉ mesmo travar seu sistema. Portanto, ao usar o laรงo Do While, evite loops infinitos.ping declaraรงรตes, vocรช deve garantir que haja algum cรณdigo que faรงa o banheiro funcionar.ping condiรงรฃo verdadeira em algum momento.

Se vocรช atribuir o valor 7 ร  variรกvel x no inรญcio, o bloco de cรณdigo nรฃo serรก executado nem uma vez. Suponha que vocรช queira executar o bloco de cรณdigo pelo menos uma vez, independentemente da condiรงรฃo, entรฃo vocรช pode usar o loop Do While. Altere o cรณdigo assim:

Exemplo de VBScript:

<script type="text/vbscript">
Dim x
x=7
Do 
document.write("Welcome.")
x=x+1
Loop While x<5
</script>

Se vocรช executar este cรณdigo, receberรก a mensagem โ€œBem-vindoโ€ apenas uma vez. Aqui a condiรงรฃo รฉ verificada somente apรณs a execuรงรฃo do loop uma vez.

VBScript fazer atรฉ loop

O loop 'Do Until' tambรฉm รฉ usado quando vocรช nรฃo sabe quanto tempo precisa para executar um bloco de cรณdigo. O primeiro bloco de cรณdigo no loop Do Until (Do While x<5) รฉ equivalente ao bloco de cรณdigo fornecido abaixo.

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
document.write("Welcome.")
x=x+1
Loop
</script>

Isso lhe darรก a mesma saรญda do primeiro bloco de cรณdigo no loop Do While. Vocรช verรก a mensagem de boas-vindas quatro vezes. Semelhante a Doโ€ฆ..Loop While, temos que Doโ€ฆLoop Until tambรฉm.

Se quiser sair de um loop Do While ou Do Until intermediรกrio, vocรช pode usar a instruรงรฃo Exit Do. Suponha que vocรช queira sair do bloco quando o valor de x se tornar 3 no programa acima, entรฃo vocรช precisa codificar assim:

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
If x=3 Then Exit Do
document.write("Welcome.")
x=x+1
Loop
</script>

Se vocรช executar o cรณdigo, sua saรญda ficarรก assim:

VBScript fazer atรฉ loop

Aqui, o loop รฉ encerrado quando o valor de x se torna 3.

VBScript durante o loop

O loop Whileโ€ฆWend รฉ semelhante ao loop Do While, embora nรฃo seja usado comumente. Como Do While รฉ mais estruturado do que o loop Whileโ€ฆ..Wend, os programadores geralmente usam instruรงรตes Do While.

<script type="text/vbscript">
Dim x
x = 1   
While x < 5   
document.write("Welcome.")
x=x+1
Wend  
</script>	

A saรญda serรก

VBScript durante o loop

Loop For-Next VBScript

O loop For-Next pode ser usado para executar um bloco de cรณdigo por um nรบmero especรญfico de vezes. O โ€œloop VBScript Forโ€ especifica a variรกvel do contador e seus valores inicial e final. A instruรงรฃo Next aumenta a variรกvel do contador em um.

For i = 1 To 5
  document.write("The number is " & i & "
")
Next

Se vocรช executar o cรณdigo, obterรก a saรญda assim:

Loop For-Next VBScript

Loop VBScript For-Step-Next

Por padrรฃo, a variรกvel do contador รฉ incrementada em um. Se vocรช deseja aumentar ou diminuir a variรกvel do contador pelo valor especificado, vocรช pode usar o loop Forโ€ฆ.Stepโ€ฆ.Next. Suponha que no cรณdigo acima vocรช queira incrementar o contador em 2 e, em seguida, modifique seu cรณdigo assim:

For i = 1 To 5 Step 2
  document.write("The number is " & i & "<br />")
Next
</script>

A saรญda deste cรณdigo serรก:

Loop VBScript For-Step-Next

Se quiser sair de um loop For Next ou For Step Next intermediรกrio, vocรช poderรก usar Exit para a instruรงรฃo. Suponha que vocรช queira sair do bloco quando o valor de i se tornar 3 no programa acima, entรฃo vocรช precisa codificar assim:

<script type="text/vbscript">
For i = 1 To 5 Step 2
  If i=3 Then Exit For
  document.write("The number is " & i & "<br />")
Next
</script>

A saรญda serรก:

Loop VBScript For-Step-Next

Loop VBScript para cada prรณximo

Se vocรช deseja repetir um bloco de cรณdigo para cada item em uma coleรงรฃo ou para cada elemento de uma matriz VBS, entรฃo vocรช precisa usar o loop Forโ€ฆEachโ€ฆNext.

<script type="text/vbscript">
Dim students(4)
students(0)="John"
students(1)="Hanah"
students(2)="Sarah"
students(3)="Kevin"
students(4)="Emma"

For Each x In students
  document.write(x & "<br />")
Next
</script>

A saรญda do cรณdigo especificado acima serรก

Loop VBScript para cada prรณximo

Code Exemplo

<html>
<head>

<script type="text/vbscript">
Dim name, length
name = InputBox("Enter your name")
length = Len(name)โ€™Gives length of the input string

For i = 1 To length
  txt = Mid(name,i,1)'Returns a specified number of characters from a string, the first parameter is the string, second parameter is the starting position and third parameter is the number of characters to return
  If txt="a" or txt="A" or txt="e" or txt="E" or txt="i" or txt="I" or txt="o" or txt="O" or txt="u" or txt="U" Then 
  counter = counter+1
  End If
Next
document.write("Hi " & name & "!!!Your name contains " & counter & " vowels.")
</script>

</head>
<body>

</body>
</html>

Salve o arquivo como loop.html no local de sua preferรชncia. Agora abra o arquivo no Internet Explorer e vocรช verรก uma caixa solicitando que vocรช insira seu nome. Digite um nome, digamos Aaron, assim:

Loop VBScript para cada prรณximo

Clique em OK e sua saรญda ficarรก assim:

Loop VBScript para cada prรณximo

Resumo

  • Looping As instruรงรตes sรฃo usadas para executar o mesmo bloco de cรณdigo repetidamente.
  • Vocรช usarรก os loops Do-While, Do-Until e While-Wend quando nรฃo souber antecipadamente quantas vezes o bloco serรก executado.
  • Vocรช usarรก os loops For-Next, For-Next-Step e For-Each-Next se jรก souber o nรบmero de vezes que precisa executar o bloco de cรณdigo.

Resuma esta postagem com: