For...Next Statement
For...Next ๋ธ๋ก ์ฌ์ด์ ๋ฌธ์ ์ง์ ํ ํ์๋งํผ ๋ฐ๋ณตํฉ๋๋ค.
๊ตฌ๋ฌธ:
For counter=start To end [Step step]
๋ฌธ ๋ธ๋ก
[Exit For]
๋ฌธ ๋ธ๋ก
Next [counter]
๋ณ์:
Counter: ๋ฑํธ์ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฐ(start)์ ์ด๊ธฐ์ ํ ๋น๋๋ ๋ฃจํ ์นด์ดํฐ์ ๋๋ค. numeric ๋ณ์๋ง ์ ํจํฉ๋๋ค. ๋ฃจํ ์นด์ดํฐ๋ End๊ฐ ์ ๋ฌ๋ ๋๊น์ง ๋ณ์ Step์ ๋ฐ๋ผ ์ฆ๊ฐํ๊ฑฐ๋ ๊ฐ์ํฉ๋๋ค.
Start: ๋ฃจํ ์์ ๋ถ๋ถ์ ์ด๊ธฐ ๊ฐ์ ์ง์ ํ๋ numeric ๋ณ์์ ๋๋ค.
End: ๋ฃจํ ๋ ๋ถ๋ถ์ ์ต์ข ๊ฐ์ ์ง์ ํ๋ numeric ๋ณ์์ ๋๋ค.
Step: ๋ฃจํ ์นด์ดํฐ๋ ์ด ๋ณ์์ ์ค์ ๋ ๊ฐ๋งํผ ์ฆ๊ฐ ๋๋ ๊ฐ์ํฉ๋๋ค. Step์ ์ง์ ํ์ง ์์ผ๋ฉด ๋ฃจํ ์นด์ดํฐ๋ 1์ฉ ์ฆ๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ End๋ Start๋ณด๋ค ์ปค์ผ ํฉ๋๋ค. Counter๋ฅผ ์ค์ด๋ ค๋ ๊ฒฝ์ฐ End๊ฐ Start๋ณด๋ค ์์์ผ ํ๋ฉฐ Step์ ์์๋ฅผ ํ ๋นํด์ผ ํฉ๋๋ค.
For...Next ๋ฃจํ๋ ๋งค๊ฐ ๋ณ์์ ์ง์ ๋ ํ์๋งํผ ๋ฃจํ์ ๋ชจ๋ ๋ฌธ์ ๋ฐ๋ณตํฉ๋๋ค.
์นด์ดํฐ ๋ณ์๊ฐ ๊ฐ์ํ ๋ LibreOffice Basic์ ๋ ๊ฐ์ ๋๋ฌํ๋์ง ๊ฒ์ฌํฉ๋๋ค. ์นด์ดํฐ๊ฐ ๋ ๊ฐ์ ์ ๋ฌํ๋ฉด ๋ฃจํ๋ ์๋์ผ๋ก ์ข ๋ฃ๋ฉ๋๋ค.
For...Next ๋ฌธ์ ์ค์ฒฉํ ์ ์์ต๋๋ค. Next ๋ค์ ๋ณ์๋ฅผ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ Next๋ ๊ฐ์ฅ ์ต๊ทผ์ For ๋ฌธ์ ์๋์ผ๋ก ์ฐธ๊ฒฐํฉ๋๋ค.
์ฆ๋ถ์ 0์ผ๋ก ์ง์ ํ๋ฉด For์ Next ์ฌ์ด์ ๋ฌธ์ด ๊ณ์ ๋ฐ๋ณต๋ฉ๋๋ค.
์นด์ดํฐ ๋ณ์๊ฐ ์ค์ด๋ค ๋ LibreOffice Basic์ ์ค๋ฒํ๋ก์ฐ ๋๋ ์ธ๋ํ๋ก์ฐ๋ฅผ ๊ฒ์ฌํฉ๋๋ค. Counter๊ฐ End๋ฅผ ์ด๊ณผํ๊ฑฐ๋(์์ Step ๊ฐ) End๋ณด๋ค ์์ผ๋ฉด(์์ Step ๊ฐ) ๋ฃจํ๋ ์ข ๋ฃ๋ฉ๋๋ค.
๋ฃจํ๋ฅผ ๋ฌด์กฐ๊ฑด ์ข ๋ฃํ๋ ค๋ฉด Exit For ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฌธ์ For...Next ๋ฃจํ ๋ด์ ์์ด์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด If...Then ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ข ๋ฃ ์กฐ๊ฑด์ ํ ์คํธํฉ๋๋ค.
For...
๋ฌธ
If condition = True Then Exit For
๋ฌธ
Next
์ฐธ๊ณ : ์ค์ฒฉ๋ For...Next ๋ฃจํ์์ Exit For๋ก ๋ฃจํ๋ฅผ ๋ฌด์กฐ๊ฑด ์ข ๋ฃํ ๊ฒฝ์ฐ ํ๋์ ๋ฃจํ๋ง ์ข ๋ฃํฉ๋๋ค.
์
๋ค์์ ๋ ๊ฐ์ ์ค์ฒฉ๋ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ด์ฉ์ผ๋ก ์ฑ์์ง๋ 10๊ฐ์ ์์๊ฐ ํฌํจ๋ ๋ฌธ์์ด ๋ฐฐ์ด( sEntry() )์ ์ ๋ ฌํ๋ ์์ ๋๋ค.
Sub ExampleSort
Dim sEntry(9) As String
Dim iCount As Integer
Dim iCount2 As Integer
Dim sTemp As String
sEntry(0) = "Jerry"
sEntry(1) = "Patty"
sEntry(2) = "Kurt"
sEntry(3) = "Thomas"
sEntry(4) = "Michael"
sEntry(5) = "David"
sEntry(6) = "Cathy"
sEntry(7) = "Susie"
sEntry(8) = "Edward"
sEntry(9) = "Christine"
For iCount = 0 To 9
For iCount2 = iCount + 1 To 9
If sEntry(iCount) > sEntry(iCount2) Then
sTemp = sEntry(iCount)
sEntry(iCount) = sEntry(iCount2)
sEntry(iCount2) = sTemp
End If
Next iCount2
Next iCount
For iCount = 0 To 9
Print sEntry(iCount)
Next iCount
End Sub