Pętle VBScript: Do While, Do Until, While, For Each (Przykład)

Dlaczego w VBScript używa się pętli?

Pętle służą do wielokrotnego wykonywania tego samego bloku kodu. Istnieje wiele instrukcji zapętlających VBScript. Niektóre instrukcje pętli VBScript to: Do ​​While, Do Until, For…..Next i tak dalej. Jak więc zdecydujesz, której instrukcji pętli użyć do swoich potrzeb?

Podczas wykonywania pętli możesz lub nie być świadomy liczby wykonań zestawu instrukcji. Na przykład chcesz obliczyć sumę dwóch liczb dziesięć razy. W tym przypadku wiesz już, że chcesz powtórzyć blok kodu 10 razy. Załóżmy, że chcesz obliczyć sumę dwóch liczb, aż konkretna zmienna stanie się prawdziwa. W tym przypadku nie wiesz, ile razy pętla ma zostać wykonana. Tak więc w zależności od tego, czy znasz, czy nie znasz liczby wykonań, możesz użyć różnych typów instrukcji pętli.

For… Instrukcje pętli Next są używane, jeśli chcesz powtórzyć blok kodu skończoną liczbę razy, czyli jeśli znasz liczbę razy, jeśli chcesz powtórzyć blok kodu.

Instrukcje Do While i Do Until są używane, gdy chcesz powtórzyć blok kodu, aż warunek stanie się prawdziwy lub fałszywy, to znaczy, gdy nie wiesz, ile razy chcesz wykonać blok kodu.

Przyjrzyjmy się kolejno tym pętlom.

VBScript działa podczas pętli

Jeśli nie wiesz, ile razy musisz wykonać blok kodu, użyjesz pętli Do While. Na przykład chcesz wyświetlić komunikat „Witamy”, gdy wartość zmiennej x jest mniejsza niż 5. W takim przypadku zostanie użyta pętla Do While.

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

Jeśli spróbujesz wykonać kod, otrzymasz następujący wynik:

VBScript działa podczas pętli

Blok zostanie wykonany cztery razy (kiedy x=1,2,3 i 4), a pętla zakończy się, gdy wartość x osiągnie 5. Jeśli zapomnisz instrukcji x=x+1, twoja pętla stanie się niekończącą się jeden. Ten rodzaj pętli jest znany jako nieskończone pętle. Nieskończone pętle mogą nawet spowodować awarię systemu. Tak więc, używając instrukcji pętli Do While, powinieneś upewnić się, że istnieje kod, który sprawi, że warunek pętli będzie prawdziwy w tym czy innym momencie.

Jeśli na początku przypiszesz zmiennej x wartość 7, to blok kodu nie zostanie wykonany ani razu. Załóżmy, że chcesz wykonać blok kodu przynajmniej raz, niezależnie od warunku, wtedy możesz użyć pętli Do While. Zmień kod w ten sposób:

Przykład VBScriptu:

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

Jeśli wykonasz ten kod, tylko raz otrzymasz wiadomość „Witamy”. Tutaj warunek jest sprawdzany dopiero po jednokrotnym wykonaniu pętli.

VBScript Wykonaj pętlę aż do

Pętla „Do Until” jest używana także wtedy, gdy nie wiadomo, ile czasu potrzeba na wykonanie bloku kodu. Pierwszy blok kodu w pętli Do Until (Do While x<5) jest odpowiednikiem podanego poniżej bloku kodu.

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

Otrzymasz taki sam wynik, jak pierwszy blok kodu w pętli Do While. Zobaczysz wiadomość powitalną cztery razy. Podobnie jak w przypadku Wykonaj…..Pętla podczas, musimy również wykonać…Zapętlenie aż.

Jeśli chcesz zakończyć pętlę Do While lub Do Until pomiędzy, możesz użyć instrukcji Exit Do. Załóżmy, że chcesz wyjść z bloku, gdy w powyższym programie wartość x wynosi 3, musisz zakodować w ten sposób:

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

Jeśli wykonasz kod, dane wyjściowe będą wyglądać następująco:

VBScript Wykonaj pętlę aż do

Tutaj pętla zostaje zakończona, gdy wartość x osiągnie 3.

VBScript podczas pętli

Pętla While…Wend jest podobna do pętli Do While, choć nie jest powszechnie używana. Ponieważ pętla Do While jest bardziej zorganizowana niż pętla While…..Wend, programiści zwykle używają instrukcji Do While.

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

Dane wyjściowe będą

VBScript podczas pętli

Pętla For-Next w języku VBScript

Pętli For-Next można użyć do wykonania bloku kodu określoną liczbę razy. „Pętla VBScript For” określa zmienną licznika oraz jej wartości początkowe i końcowe. Instrukcja Next zwiększa zmienną licznika o jeden.

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

Jeśli wykonasz kod, otrzymasz następujący wynik:

Pętla For-Next w języku VBScript

Pętla VBScript „Krok-Następny”.

Domyślnie zmienna licznika jest zwiększana o jeden. Jeśli chcesz zwiększyć lub zmniejszyć zmienną licznika o określoną wartość, możesz użyć pętli For….Step….Next. Załóżmy, że w powyższym kodzie chcesz zwiększyć licznik o 2, a następnie zmodyfikuj swój kod w następujący sposób:

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

Wynik tego kodu będzie:

Pętla VBScript „Krok-Następny”.

Jeśli chcesz zakończyć pętlę For Next lub For Step Next pomiędzy nimi, możesz użyć Exit dla instrukcji. Załóżmy, że chcesz wyjść z bloku, gdy w powyższym programie wartość i wynosi 3, musisz zakodować w ten sposób:

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

Wyjście będzie:

Pętla VBScript „Krok-Następny”.

VBScript dla każdej następnej pętli

Jeśli chcesz powtórzyć blok kodu dla każdego elementu kolekcji lub każdego elementu tablicy VBS, musisz użyć pętli 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>

Dane wyjściowe powyższego kodu będą

VBScript dla każdej następnej pętli

Przykład kodu

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

Zapisz plik jako loop.html w preferowanej lokalizacji. Teraz otwórz plik w Internet Explorerze, a pojawi się okno z prośbą o podanie imienia. Wpisz imię, powiedzmy Aaron, w ten sposób:

VBScript dla każdej następnej pętli

Kliknij OK, a dane wyjściowe będą wyglądać następująco:

VBScript dla każdej następnej pętli

Podsumowanie

  • Instrukcje pętlowe służą do wielokrotnego wykonywania tego samego bloku kodu.
  • Pętli Do-While, Do-Until i While-Wend będziesz używać, gdy nie wiesz z góry, ile razy blok ma zostać wykonany.
  • Pętli For-Next, For-Next-Step i For-Each-Next użyjesz, jeśli już wiesz, ile razy musisz wykonać blok kodu.

Czytaj więcej Czytaj więcej

Codzienny biuletyn Guru99

Rozpocznij dzień od najnowszych i najważniejszych wiadomości na temat sztucznej inteligencji, dostarczanych już teraz.