VBScript 루프: Do While, Do Until, While, For Each(예)

VBScript에서 루프가 사용되는 이유는 무엇입니까?

루프는 동일한 코드 블록을 반복해서 실행하는 데 사용됩니다. VBScript 루핑 문이 많이 있습니다. VBScript 루핑 문 중 일부는 Do While, Do Until, For…..Next 등입니다. 그렇다면 필요에 따라 사용할 루프 문을 어떻게 결정하시겠습니까?

루프를 실행하는 동안 일련의 명령을 실행하려는 횟수를 알 수도 있고 알지 못할 수도 있습니다. 예를 들어, 두 숫자의 합을 10번 계산하려고 합니다. 이 경우, 코드 블록을 XNUMX번 반복한다는 것을 이미 알고 있습니다. 특정 변수가 true가 될 때까지 두 숫자의 합을 계산한다고 가정해 보겠습니다. 여기서는 루프가 몇 번 실행될지 알 수 없습니다. 따라서 실행 횟수를 알고 있는지 여부에 따라 다양한 유형의 루프 문을 사용할 수 있습니다.

For…Next 루프 문은 코드 블록을 유한한 횟수만큼 반복하려는 경우, 코드 블록을 반복하려는 횟수를 알고 있는 경우에 사용됩니다.

Do While 및 Do Until 루프 문은 조건이 true 또는 false가 될 때까지 코드 블록을 반복하려는 경우, 즉 코드 블록을 실행하려는 횟수를 알지 못하는 경우에 사용됩니다.

이러한 반복문을 하나씩 살펴보겠습니다.

VBScript Do While 루프

코드 블록을 실행해야 하는 횟수를 모르는 경우 Do While 루프를 사용하게 됩니다. 예를 들어, 변수 x의 값이 5보다 작은 경우 “Welcome”이라는 메시지를 출력하려고 합니다. 이 경우 Do While 루프가 사용됩니다.

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

코드를 실행해 보면 다음과 같은 결과를 얻을 수 있습니다.

VBScript Do While 루프

블록은 1,2,3번(x=4일 때) 실행되고 x 값이 5가 되면 루프가 종료됩니다. x=x+1 문을 잊어버리면 루프는 끝이 없는 루프가 됩니다. 하나. 이러한 종류의 루프는 다음과 같이 알려져 있습니다. 무한 루프. 무한 루프로 인해 시스템이 중단될 수도 있습니다. 따라서 Do While 루프 문을 사용하는 동안 특정 지점 또는 다른 지점에서 루프 조건을 true로 만드는 일부 코드가 있는지 확인해야 합니다.

처음에 변수 x에 값 7을 할당하면 해당 코드 블록은 한 번도 실행되지 않습니다. 조건에 관계없이 코드 블록을 적어도 한 번 실행하고 싶다면 Do While 루프를 사용할 수 있습니다. 코드를 다음과 같이 변경하세요.

VBScript 예:

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

이 코드를 실행하면 “Welcome”이라는 메시지가 딱 한 번 나옵니다. 여기서는 루프를 한 번 실행한 후에만 조건을 확인합니다.

VBScript Do Until 루프

'Do Until' 루프는 코드 블록을 실행하는 데 필요한 시간을 알 수 없는 경우에도 사용됩니다. Do Until 루프(Do While x<5)의 첫 번째 코드 블록은 아래 코드 블록과 동일합니다.

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

그러면 Do While 루프의 첫 번째 코드 블록과 동일한 출력이 제공됩니다. 환영 메시지가 XNUMX번 표시됩니다. Do…..Loop While과 유사하게 Do…Loop Until도 수행해야 합니다.

Do While 또는 Do Until 루프를 그 사이에서 종료하려면 Exit Do 문을 사용할 수 있습니다. 위 프로그램에서 x 값이 3이 될 때 블록을 종료한다고 가정하면 다음과 같이 코딩해야 합니다.

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

코드를 실행하면 출력은 다음과 같습니다.

VBScript Do Until 루프

여기서 x 값이 3이 되면 루프가 종료됩니다.

VBScript While 루프

While…Wend 루프는 일반적으로 사용되지는 않지만 Do While 루프와 유사합니다. Do While은 While…..Wend 루프보다 더 구조적이므로 프로그래머는 일반적으로 Do While 문을 사용합니다.

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

출력은

VBScript While 루프

VBScript For-Next 루프

For-Next 루프는 특정 횟수만큼 코드 블록을 실행하는 데 사용할 수 있습니다. "VBScript For 루프"는 카운터 변수와 해당 시작 및 끝 값을 지정합니다. Next 문은 카운터 변수를 XNUMX만큼 증가시킵니다.

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

코드를 실행하면 다음과 같은 결과가 출력됩니다.

VBScript For-Next 루프

VBScript For-Step-Next 루프

기본적으로 카운터 변수는 2씩 증가합니다. 지정한 값만큼 카운터 변수를 늘리거나 줄이려면 For….Step….Next 루프를 사용할 수 있습니다. 위 코드에서 카운터를 XNUMX만큼 증가시키고 다음과 같이 코드를 수정한다고 가정합니다.

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

이 코드의 출력은 다음과 같습니다.

VBScript For-Step-Next 루프

그 사이에 For Next 또는 For Step Next 루프를 종료하려면 명령문에 대해 Exit를 사용할 수 있습니다. 위 프로그램에서 i 값이 3이 될 때 블록을 종료한다고 가정하면 다음과 같이 코딩해야 합니다.

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

출력은 다음과 같습니다

VBScript For-Step-Next 루프

VBScript For-Each-Next 루프

컬렉션의 각 항목이나 VBS 배열의 각 요소에 대해 코드 블록을 반복하려면 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>

위에 지정된 코드의 출력은 다음과 같습니다.

VBScript For-Each-Next 루프

코드 예제

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

원하는 위치에 파일을 loop.html로 저장합니다. 이제 Internet Explorer에서 파일을 열면 다음과 같은 메시지가 나타납니다. box 이름을 입력하라고 합니다. 다음과 같이 Aaron이라는 이름을 입력하세요.

VBScript For-Each-Next 루프

확인을 클릭하면 출력은 다음과 같습니다.

VBScript For-Each-Next 루프

요약

  • 반복문은 동일한 코드 블록을 반복해서 실행하는 데 사용됩니다.
  • 블록이 몇 번이나 실행될지 미리 알 수 없는 경우 Do-While, Do-Until 및 While-Wend 루프를 사용합니다.
  • 코드 블록을 실행하는 데 필요한 횟수를 이미 알고 있는 경우 For-Next, For-Next-Step 및 For-Each-Next 루프를 사용합니다.