Smyčky VBScript: Do while, Do dokud, Zatímco, pro každý (příklad)

Proč se ve VBScriptu používají smyčky?

Smyčky se používají ke spuštění stejného bloku kódu znovu a znovu. Existuje řada cyklických příkazů jazyka VBScript. Některé ze smyčkových příkazů VBScript jsou Do Zatímco, Do Do, Pro…..Další a tak dále. Jak se tedy rozhodnete, který příkaz smyčky použít pro vaši potřebu?

Při provádění cyklů si můžete nebo nemusíte být vědomi toho, kolikrát chcete provést sadu instrukcí. Například chcete desetkrát vypočítat součet dvou čísel. V tomto případě již víte, že chcete opakovat blok kódu 10krát. Předpokládejme, že chcete vypočítat součet dvou čísel, dokud se konkrétní proměnná nestane pravdivou. Zde nevíte, kolikrát se má smyčka provést. Takže na základě toho, zda znáte nebo neznáte počet provedení, můžete použít různé typy cyklických příkazů.

Příkazy For…Next looping se používají, pokud chcete opakovat blok kódu konečný počet opakování, pokud znáte počet, pokud chcete opakovat blok kódu.

Příkazy Do While a Do Until se používají, když chcete opakovat blok kódu, dokud se podmínka nestane pravdivou nebo nepravdivou, tedy když si nejste vědomi toho, kolikrát chcete blok kódu provést.

Pojďme se podívat na tyto cyklické příkazy jeden po druhém.

VBScript Proveďte smyčku

Pokud nevíte, kolikrát je potřeba provést blok kódu, pak budete používat smyčky Do While. Například chcete vypsat zprávu „Welcome“, zatímco hodnota proměnné x je menší než 5. V takovém případě se použije smyčka Do While.

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

Pokud se pokusíte spustit kód, dostanete výstup takto:

VBScript Proveďte smyčku

Blok se provede čtyřikrát (když x=1,2,3 a 4) a cyklus skončí, když hodnota x bude 5. Pokud zapomenete příkaz x=x+1, stane se vaše smyčka nekonečnou jeden. Tento druh smyček je známý jako nekonečné smyčky. Nekonečné smyčky by mohly dokonce zničit váš systém. Takže při používání příkazů Do While pro opakování byste se měli ujistit, že existuje nějaký kód, který v jednom nebo druhém bodě učiní podmínku opakování pravdivou.

Pokud proměnné x přiřadíte na začátku hodnotu 7, pak se blok kódu neprovede ani jednou. Předpokládejme, že chcete provést blok kódu alespoň jednou bez ohledu na podmínku, pak můžete použít smyčku Do While. Změňte kód takto:

Příklad VBScript:

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

Pokud tento kód spustíte, dostanete zprávu „Vítejte“ pouze jednou. Zde se podmínka kontroluje až po jednom provedení smyčky.

VBScript Do dokud smyčka

Smyčka 'Do Until' se také používá, když nevíte, kolik času potřebujete k provedení bloku kódu. První blok kódu ve smyčce Do Until (Do While x<5) je ekvivalentní níže uvedenému bloku kódu.

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

To vám poskytne stejný výstup jako první blok kódu ve smyčce Do While. Uvítací zprávu uvidíte čtyřikrát. Podobné jako Do ….. Loop While, musíme také dělat… Loop When.

Pokud chcete mezi tím ukončit smyčku Do While nebo Do Before, můžete použít příkaz Exit Do. Předpokládejme, že chcete ukončit blok, když se hodnota x ve výše uvedeném programu stane 3, pak musíte kódovat takto:

<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>

Pokud spustíte kód, váš výstup bude vypadat takto:

VBScript Do dokud smyčka

Zde se smyčka opustí, když se hodnota x stane 3.

VBScript při smyčce

Smyčka While…Wend je podobná smyčce Do While, i když se běžně nepoužívá. As Do While je strukturovanější než While…..Wend smyčka, programátoři obvykle používají příkazy Do While.

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

Výstup bude

VBScript při smyčce

VBScript pro další smyčku

Smyčku For-Next lze použít ke spuštění bloku kódu pro určitý počet opakování. „Smyčka VBScript For“ specifikuje proměnnou čítače a její počáteční a koncové hodnoty. Příkaz Next zvýší proměnnou čítače o jednu.

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

Pokud spustíte kód, dostanete výstup takto:

VBScript pro další smyčku

VBScript For-Step-Next Loop

Ve výchozím nastavení je proměnná čítače zvýšena o jednu. Pokud chcete zvýšit nebo snížit proměnnou čítače o hodnotu, kterou zadáte, můžete použít smyčku For….Step….Next. Předpokládejme, že ve výše uvedeném kódu chcete zvýšit počítadlo o 2, poté svůj kód upravte takto:

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

Výstupem tohoto kódu bude:

VBScript For-Step-Next Loop

Pokud chcete mezi tím ukončit smyčku For Next nebo For Step Next, můžete pro příkaz použít Exit. Předpokládejme, že chcete ukončit blok, když se hodnota i stane 3 ve výše uvedeném programu, pak musíte kódovat takto:

<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>

Výstup bude:

VBScript For-Step-Next Loop

VBScript pro každou další smyčku

Pokud chcete opakovat blok kódu pro každou položku v kolekci nebo pro každý prvek pole VBS, musíte použít For…Each…Next smyčku.

<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>

Výstupem výše specifikovaného kódu bude

VBScript pro každou další smyčku

Příklad kódu

<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>

Uložte soubor jako loop.html ve vámi preferovaném umístění. Nyní otevřete soubor v aplikaci Internet Explorer a zobrazí se pole s výzvou k zadání vašeho jména. Zadejte jméno, řekněte Aaron, takto:

VBScript pro každou další smyčku

Klikněte na OK a váš výstup bude vypadat takto:

VBScript pro každou další smyčku

Shrnutí

  • Příkazy opakování se používají ke spuštění stejného bloku kódu znovu a znovu.
  • Smyčky Do-While, Do-Until a While-Wend použijete, když předem nevíte, kolikrát se má blok provést.
  • Smyčky For-Next, For-Next-Step a For-Each-Next použijete, pokud již víte, kolikrát potřebujete provést blok kódu.