학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2
5.1 반복문 5.2 구구단작성기로익히는반복문 3
반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4
For Next 정해진횟수만큼명령문또는명령문블록을반복수행 형식 수행 For 변수 = 시작값 To 종료값 [Step 증감치 ] < 명령문 > Next [ 변수 ] 변수를 시작값 으로초기화 명령문을한번수행할때마다 증감치 만큼증감 변수의값이종료값보다크면반복종료 증감치가 1 씩증가할때는생략가능 5
예제 5-1 1 부터 10 까지의합 초기화면 실행화면 6
예제 5-1 컨트롤속성설정 컨트롤이름속성설정 Form Text 10까지의합 Label Label1 Text 1부터 10까지의합 TextBox txtresult Text Button Text 합구하기 7
예제 5-1 코드작성 1. Private Sub Button1_Click(...) Handles Button1.Click 2. Dim intn as Integer 3. Dim intsum as Integer 4. ' 변수 intn에 1로초기화시키고 10이될때까지 1씩증가 5. For intn = 1 To 10 6. intsum = intsum + intn 7. Next intn 8. txtresult.text = intsum 9. End Sub 8
예제 5-2 1 부터 100 까지의 3 의배수의합 초기화면 실행화면 9
예제 5-2 컨트롤속성설정 컨트롤이름속성설정 Form Text 3의배수의합 Label Label1 Text 1부터 100까지의 3의배수의합 TextBox txtresult Text Button Text 합구하기 10
예제 5-2 코드작성 1. Private Sub Button1_Click(...) Handles Button1.Click 2. Dim intn as Integer 3. Dim intsum as Integer 4. ' 변수 intn에 1로초기화시키고 100이될때까지 3씩증가 5. For intn = 3 To 100 Step 3 6. intsum = intsum + intn 7. Next ' 변수 intn 생략 8. txtresult.text = intsum 9. End Sub 11
예제 5-3 구구단의 2 단에서 9 단까지출력 ( 중첩 For Next 문 ) 초기화면 실행화면 12
예제 5-3 컨트롤속성설정 컨트롤이름속성설정 Form Text 구구단출력 ListBox lstresult Button Text 구구단 13
예제 5-3 코드작성 1. Private Sub Button1_Click(...) Handles Button1.Click 2. Dim intn, intm As Integer 3. For intn = 2 To 9 ' 2부터 9까지 1씩증가시키면서반복 4. For intm = 1 To 9 ' 1부터 9까지 1씩증가시키면서반복 5. ' 리스트박스에결과출력 6. lstresult.items.add(intn & " x " & intm & " = " & intn * intm) 7. Next intm ' 안쪽에서반복되는 For 8. Next intn 9. End Sub 14
예제 5-4 문자열을공백을중심으로분리 초기화면 실행화면 15
예제 5-4 컨트롤속성설정 컨트롤이름속성설정 Form Text 문자열분리 ListBox lstresult Button Text 문자열분리 16
예제 5-4 코드작성 1. Private Sub Button1_Click(...) Handles Button1.Click 2. Dim str1 As String = "Hello World" 3. Dim str1array() As String 4. str1array = str1.split(" ") 5. For i As Integer = 0 To str1array.length - 1 6. If str1array(i) <> "" Then 7. lstresult.items.add(str1array(i)) 8. End If 9. Next 10. End Sub 17
For Each Next 정해진횟수만큼명령문또는명령문블록을반복수행 배열이나컬렉션의크기만큼반복 컬렉션 배열과유사하게값이연속해서저장되어있는데이터구조 형식 For Each 변수 In 컬렉션 ( 배열 )_ 이름 < 명령문 > Next [ 변수 ] 수행 변수에컬렉션의첫번째값대입 명령문을한번수행할때마다변수에컬렉션의다음값대입 더이상컬렉션에값이없으면반복종료 18
예제 5-5 배열을이용한 For Each Next 문 초기화면 실행화면 19
예제 5-5 컨트롤속성설정 컨트롤이름속성설정 Form Text For Each Next문 TextBox txtresult Button Text 1부터 5까지의각각의곱 20
예제 5-5 코드작성 1. Private Sub Button1_Click() Handles Button1.Click 2. Dim arr(5) As Integer 3. Dim i As Integer, k As Variant 4. 5. For i = 1 To 5 '1부터 5까지 1씩증가시키면서반복 6. arr(i) = i * i 7. Next i 8. For Each k In arr ' 배열 arr의 0번째부터값을차례로꺼내면 서반복 9. txtresult.text = txtresult.text & vbcrlf & k 10. Next k 11. End Sub 21
Do Loop 조건이만족하는동안또는만족할때까지반복 Until 만족할때까지반복 While 현재조건이만족하는동안반복 컵이가득채워질때까지계속따라야지 ~~ 컵이비어있는한 ( 동안 ) 계속따라야지 ~~ 22
형식 조건확인후실행 Do {While 또는 Until} 조건식 < 명령문 > Loop Do Loop 실행후조건확인 Do < 명령문 > Loop {While 또는 Until} 조건식 23
예제 5-6 1 부터 100 까지의 3 의배수의합 (Do Until 사용 ) 초기화면 실행화면 24
예제 5-6 컨트롤속성설정 컨트롤이름속성설정 Form Text Do Until 사용 TextBox txtresult Button Text 1부터 100까지의 3의배수의합 25
예제 5-6 코드작성 1. Private Sub Button1_Click() Handles Button1.Click 2. Dim intn as Integer, intsum as Integer 3. intsum = 0 : intn = 3 ' 두개의문장을한행에쓸때는 : 로구분 4. Do Until intn > 100 ' intn의값이 100보다큰값을가질때까 지반복 5. intsum = intsum + intn 6. intn = intn + 3 7. Loop 8. 9. txtresult.text = intsum 10. End Sub 26
예제 5-7 1 부터 100 까지의 3 의배수의합 (Do While 사용 ) 초기화면 실행화면 27
예제 5-7 컨트롤속성설정 컨트롤이름속성설정 Form Text Do While 사용 TextBox txtresult Button Text 1부터 100까지의 3의배수의합 28
예제 5-7 코드작성 1. Private Sub Button1_Click() Handles Button1.Click 2. Dim intn as Integer, intsum as Integer 3. intsum = 0 : intn = 3 4. 5. Do While intn <= 100 ' intn의값이 100보다작거나같은동 안반복 6. intsum = intsum + intn 7. intn = intn + 3 8. Loop 9. 10. txtresult.text = intsum 11. End Sub 29
While Wend Do Loop 에 While 을이용한경우와 유사 형식 수행 While 조건식 < 명령문 > Wend 조건식이만족하는동안명령문수행 30
예제 5-8 1 부터 100 까지의 3 의배수의합 (While 사용 ) 초기화면 실행화면 31
예제 5-8 컨트롤속성설정 컨트롤이름속성설정 Form Text While 사용 TextBox txtresult Button Text 1부터 100까지의 3의배수의합 32
예제 5-8 코드작성 1. Private Sub Button1_Click() Handles Button1.Click 2. Dim intn as Integer, intsum as Integer 3. intsum = 0 : intn = 3 ' 두개의문장을한행에쓸때는 : 로구분 4. While intn <= 100 ' intn의값이 100보다작거나같은동안반복 5. intsum = intsum + intn 6. intn = intn + 3 7. End While 8. txtresult.text = intsum 9. End Sub 33
5.1 반복문 5.2 구구단작성기로익히는반복문 34
구구단작성기로익히는반복문 그룹박스, 리스트박스, 라디오버튼을배치하여라디오버튼이클릭되면해당구구단이리스트박스에출력 그룹박스 라디오버튼 리스트박스 35
컨트롤속성설정 컨트롤 이름 속성 설정 Form Form1 Text 구구단작성기 GroupBox grpdan Text 9 X 9단 ListBox lstresult ScrollAlwaysVisible True rdob2 Text 2단 rdob3 Text 3단 rdob4 Text 4단 RadioButton rdob5 Text 5단 rdob6 Text 6단 rdob7 Text 7단 rdob8 Text 8단 rdob9 Text 9단 36
코드작성 (1) 텍스트속성이 2단 인라디오버튼을클릭하여 CheckedChanged 이벤트발생 For Next문이용 1. Private Sub rdob2_checkedchanged(...) Handles rdob2.checkedchanged 2. Dim i, rst As Integer 3. lstresult.items.clear() 4. For i = 1 To 9 5. rst = 2 * i 6. lstresult.items.add(2 & " x " & i & " = " & rst) 7. Next i 8. End Sub 37
코드작성 (2) 텍스트속성이 2단 인라디오버튼을클릭하여 CheckedChanged 이벤트발생 Do Loop문이용 1. Private Sub rdob2_checkedchanged(...) Handles rdob2.checkedchanged 2. Dim i, rst As Integer 3. lstresult.items.clear() 4. i = 1 5. Do While I <= 9 6. rst = 2 * i 7. lstresult.items.add(2 & " x " & i & " = " & rst) 8. i = i + 1 9. Loop 10. End Sub 38
실행화면 39