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:
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:
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รก
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 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รก:
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 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รก
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:
Clique em OK e sua saรญda ficarรก assim:
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.




