API Basic Continue ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Continue For / Do / While

ClassicUO โ€ข Basic

Continue๋Š” ์ง€์ •ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐ”๊นฅ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋‚จ์€ ๋ณธ๋ฌธ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. Continue For๋Š” ์ˆซ์ž For์™€ For Each, Continue Do๋Š” Do/Loop์™€ Repeat/Until, Continue While๋Š” While/Wend์— ์”๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ๊ตฌ๋ฌธ

Continue For
Continue Do
Continue While

๋งค๊ฐœ๋ณ€์ˆ˜

  • kind โ€” kind: Continue ๋’ค์— For, Do, While ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ด๋ฉฐ ๊ด„ํ˜ธ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ํ”„๋กœ์‹œ์ €์—์„œ ํ•ด๋‹น ๋ฐ˜๋ณต๋ฌธ์ด ๋ฌธ์žฅ์„ ๊ฐ์‹ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์€ ์ด๋™์„ ๊ฐ€๋กœ์ฑ„์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜ํ™˜๊ฐ’

Continue๋Š” ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์œผ๋ฉฐ ์‹์— ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. TRUE/FALSE๋„ ์•„๋‹ˆ๊ณ  ํ”„๋กœ์‹œ์ €๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋Š” ๋‚˜์ค‘์— RETURN์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์˜ˆ์ œ๋Š” Integer 10, 3, 34๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘

  • For๋Š” NEXT์—์„œ STEP์„ ์ ์šฉํ•˜๊ณ  ๋‹ค์Œ ๊ฐ’์„ ๋ฒ”์œ„์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. For Each๋Š” ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉฐ ๋๋‚˜๋ฉด ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์นด์šดํ„ฐ ์ดˆ๊ธฐํ™”๋‚˜ ์ปฌ๋ ‰์…˜ ์‹ ํ‰๊ฐ€๋Š” ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Do์˜ ์‹œ์ž‘ ์กฐ๊ฑด์€ ์‹œ์ž‘์—์„œ, Loop์˜ ๋ ์กฐ๊ฑด์€ ๋์—์„œ ๋‹ค์‹œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Repeat/Until์€ UNTIL์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์กฐ๊ฑด Do/Loop๋Š” ๋ช…์‹œ์  ์ข…๋ฃŒ๋‚˜ ์ค‘์ง€๊นŒ์ง€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. While๋Š” WHILE์„ ์žฌ๊ฒ€์‚ฌํ•˜๋ฉฐ Continue Do๋Š” While/Wend๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ค€๋น„ํ•  ๋•Œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํ•ด๋‹น ๋ฐ˜๋ณต๋ฌธ์˜ ์ฃผ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์—†์œผ๋ฉด Option Explicit ์—†์ด๋„ ์ดˆ๊ธฐํ™” ์ „์— SC020์„ ๋ƒ…๋‹ˆ๋‹ค. NEXT ์ด๋ฆ„๊ณผ ๋๋„ ๊ฒ€์‚ฌํ•˜๋ฉฐ IF ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋Š” ๊ธฐ์กด FOR/NEXT ํ˜ธํ™˜์„ฑ์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • TRY/CATCH๋ฅผ ๋ฒ—์–ด๋‚  ๋•Œ ๊ฑฐ์น˜๋Š” FINALLY๋ฅผ ์•ˆ์—์„œ ๋ฐ–์œผ๋กœ ๊ฐ๊ฐ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ ์ „์ฒด๊ฐ€ TRY ์•ˆ์— ์žˆ์œผ๋ฉด ๊ทธ FINALLY๋Š” ๋งคํšŒ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. FINALLY์˜ RETURN์ด๋‚˜ ์˜ค๋ฅ˜๋Š” ๋ณด๋ฅ˜๋œ ์ด๋™์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
  • Continue๋Š” ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์กฐํšŒ ๋ฐ˜๋ณต์—์„œ๋Š” ์กฐ๊ฑด์„ ๊ฐฑ์‹ ํ•˜๊ฑฐ๋‚˜ ์•Œ๋งž์€ ๋Œ€๊ธฐ๋ฅผ ๋„ฃ์–ด ๋ฌดํ•œ ๋ฐ˜๋ณต์„ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ์‹œ ์ •์ง€ยท์ค‘์ง€ ํ™•์ธ์€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฒ—์–ด๋‚œ ๋„ค์ดํ‹ฐ๋ธŒ ์—ด๊ฑฐ์ž๋Š” ํ•ด์ œ๋˜๋ฉฐ ์‹คํ–‰์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. Exit For/Do/While๋Š” ๋‹ค์Œ ๋ฐ˜๋ณต ๋Œ€์‹  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

1. ์š”์†Œ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

# values๋Š” -2, 4, 0, 6์ž…๋‹ˆ๋‹ค. item<=0์ด๋ฉด -2์™€ 0์—์„œ Continue For๋ฅผ ์‹คํ–‰ํ•ด total+=item์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. For Each๋„ ๊ฐ™์€ ํ˜•์‹์ž…๋‹ˆ๋‹ค. SumPositive์™€ Main์€ 4+6์ธ Integer 10์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Option Explicit On
Function SumPositive(values)
    Var total = 0
    For Each item In values
        If item <= 0 Then
            Continue For
        End If
        total += item
    Next
    Return total
End Function
Sub Main()
    Dim values[3]
    values[0] = -2
    values[1] = 4
    values[2] = 0
    values[3] = 6
    Return SumPositive(values)
End Sub

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

values๋Š” -2, 4, 0, 6์ž…๋‹ˆ๋‹ค. item<=0์ด๋ฉด -2์™€ 0์—์„œ Continue For๋ฅผ ์‹คํ–‰ํ•ด total+=item์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. For Each๋„ ๊ฐ™์€ ํ˜•์‹์ž…๋‹ˆ๋‹ค. SumPositive์™€ Main์€ 4+6์ธ Integer 10์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

2. ์ข…๋ฅ˜๋กœ ๋ฐ”๊นฅ ๋ฐ˜๋ณต ์„ ํƒ

# AdvanceTo๋Š” limit=3์„ ๋ฐ›์œผ๋ฉฐ count๋Š” 0์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. While True ์•ˆ์—์„œ count๋ฅผ ๋Š˜๋ฆฐ ๋’ค Continue Do๋กœ ๋ฐ”๊นฅ Do์— ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์„ ์žฌ๊ฒ€์‚ฌํ•˜๋ฉฐ count=3์—์„œ ๋๋‚˜ Integer 3์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
Option Explicit On
Function AdvanceTo(limit)
    Var count = 0
    Do While count < limit
        While True
            count += 1
            Continue Do
        Wend
    Loop
    Return count
End Function
Sub Main()
    Return AdvanceTo(3)
End Sub

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

AdvanceTo๋Š” limit=3์„ ๋ฐ›์œผ๋ฉฐ count๋Š” 0์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. While True ์•ˆ์—์„œ count๋ฅผ ๋Š˜๋ฆฐ ๋’ค Continue Do๋กœ ๋ฐ”๊นฅ Do์— ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์„ ์žฌ๊ฒ€์‚ฌํ•˜๋ฉฐ count=3์—์„œ ๋๋‚˜ Integer 3์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

3. ๊ฑด๋„ˆ๋›ด ๋ฐ˜๋ณต๋„ ์ •๋ฆฌ

# Process๋Š” limit=3, skip=2๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. i๋Š” 1, 2, 3์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” total+=i๋ฅผ ๊ฑด๋„ˆ๋›ฐ์ง€๋งŒ Finally๋Š” cleanup์„ ์„ธ ๋ฒˆ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. total=4, cleanup=3์ด๋ฏ€๋กœ RETURN cleanup*10+total์€ Integer 34์ž…๋‹ˆ๋‹ค.
Option Explicit On
Function Process(limit, skip)
    Var total = 0
    Var cleanup = 0
    For Var i = 1 To limit
        Try
            If i = skip Then
                Continue For
            End If
            total += i
        Finally
            cleanup += 1
        End Try
    Next i
    Return cleanup * 10 + total
End Function
Sub Main()
    Return Process(3, 2)
End Sub

๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์‹คํ–‰ ์„ค๋ช…:

Process๋Š” limit=3, skip=2๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. i๋Š” 1, 2, 3์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” total+=i๋ฅผ ๊ฑด๋„ˆ๋›ฐ์ง€๋งŒ Finally๋Š” cleanup์„ ์„ธ ๋ฒˆ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค. total=4, cleanup=3์ด๋ฏ€๋กœ RETURN cleanup*10+total์€ Integer 34์ž…๋‹ˆ๋‹ค.


en ยท ru ยท uk ยท fr ยท de ยท it ยท es ยท zh-tw ยท ja ยท ko

Basic