Visual Basic 2010 5. 반복문
학습목표 반복문 구구단 작성기로 익히는 반복문 For…Next문, For Each…Next문 Do…Loop문, While…End While문 구구단 작성기로 익히는 반복문 Visual Basic 2010
5.1 반복문 5.2 구구단 작성기로 익히는 반복문 Visual Basic 2010
반복문 주어진 조건이 만족하는 동안 또는 주어진 조건이 만족할 때까지 일정 구간의 실행문을 반복하기 위해 사용 For … Next For Each … Next Do … Loop While … Wend Visual Basic 2010
For … Next 정해진 횟수만큼 명령문 또는 명령문 블록을 반복 수행 형식 수행 변수를 “시작 값”으로 초기화 명령문을 한번 수행할 때마다 “증감치”만큼 증감 변수의 값이 종료 값보다 크면 반복 종료 증감치가 1씩 증가할 때는 생략 가능 For 변수 = 시작 값 To 종료 값 [Step 증감치] <명령문> Next [변수] Visual Basic 2010
예제5-1 1부터 10까지의 합 초기 화면 실행 화면 Visual Basic 2010
예제5-1 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text 10까지의 합 Label Label1 1부터 10까지의 합 TextBox txtResult Button 합 구하기 Visual Basic 2010
예제5-1 코드 작성 Private Sub Button1_Click(...) Handles Button1.Click Dim intN as Integer Dim intSum as Integer ' 변수 intN에 1로 초기화시키고 10이 될 때까지 1씩 증가 For intN = 1 To 10 intSum = intSum + intN Next intN txtResult.Text = intSum End Sub Visual Basic 2010
예제5-2 1부터 100까지의 3의 배수의 합 초기 화면 실행 화면 Visual Basic 2010
예제5-2 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text 3의 배수의 합 Label Label1 1부터 100까지의 3의 배수의 합 TextBox txtResult Button 합 구하기 Visual Basic 2010
예제5-2 코드 작성 Private Sub Button1_Click(...) Handles Button1.Click Dim intN as Integer Dim intSum as Integer ' 변수 intN에 1로 초기화시키고 100이 될 때까지 3씩 증가 For intN = 3 To 100 Step 3 intSum = intSum + intN Next ' 변수 intN 생략 txtResult.Text = intSum End Sub Visual Basic 2010
예제5-3 구구단의 2단에서 9단까지 출력(중첩 For…Next문) 초기 화면 실행 화면 Visual Basic 2010
예제5-3 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text 구구단 출력 ListBox lstResult Button Visual Basic 2010
예제5-3 코드 작성 Private Sub Button1_Click(...) Handles Button1.Click Dim intN, intM As Integer For intN = 2 To 9 ' 2부터 9까지 1씩 증가시키면서 반복 For intM = 1 To 9 ' 1부터 9까지 1씩 증가시키면서 반복 '리스트박스에 결과 출력 lstResult.Items.Add(intN & " x " & intM & " = " & intN * intM) Next intM ' 안쪽에서 반복되는 For Next intN End Sub Visual Basic 2010
예제5-4 문자열을 공백을 중심으로 분리 초기 화면 실행 화면 Visual Basic 2010
예제5-4 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text 문자열 분리 ListBox lstResult Button Visual Basic 2010
예제5-4 코드 작성 Private Sub Button1_Click(...) Handles Button1.Click Dim str1 As String = "Hello World" Dim str1Array() As String str1Array = str1.Split(" ") For i As Integer = 0 To str1Array.Length - 1 If str1Array(i) <> "" Then lstResult.Items.Add(str1Array(i)) End If Next End Sub Visual Basic 2010
For Each … Next 정해진 횟수만큼 명령문 또는 명령문 블록을 반복 수행 배열이나 컬렉션의 크기만큼 반복 형식 수행 배열과 유사하게 값이 연속해서 저장되어 있는 데이터 구조 형식 수행 변수에 컬렉션의 첫번째 값 대입 명령문을 한번 수행할 때마다 변수에 컬렉션의 다음 값 대입 더 이상 컬렉션에 값이 없으면 반복 종료 For Each 변수 In 컬렉션(배열)_이름 <명령문> Next [변수] Visual Basic 2010
예제5-5 배열을 이용한 For Each…Next문 초기 화면 실행 화면 Visual Basic 2010
예제5-5 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text For Each…Next문 TextBox txtResult Button 1부터 5까지의 각각의 곱 Visual Basic 2010
예제5-5 코드 작성 Private Sub Button1_Click() Handles Button1.Click Dim arr(5) As Integer Dim i As Integer, k As Variant For i = 1 To 5 '1부터 5까지 1씩 증가시키면서 반복 arr(i) = i * i Next i For Each k In arr ' 배열 arr의 0번째부터 값을 차례로 꺼내면서 반복 txtResult.Text = txtResult.Text & vbCrLf & k Next k End Sub Visual Basic 2010
Do … Loop 조건이 만족하는 동안 또는 만족할 때까지 반복 Until While 만족할 때까지 반복 현재 조건이 만족하는 동안 반복 컵이 가득 채워질때까지 계속 따라야지~~ 컵이 비어있는 한(동안) 계속 따라야지~~ Visual Basic 2010
Do … Loop 형식 조건 확인 후 실행 실행 후 조건 확인 Do {While 또는 Until} 조건식 <명령문> Loop {While 또는 Until} 조건식 Visual Basic 2010
예제5-6 1부터 100까지의 3의 배수의 합(Do Until 사용) 초기 화면 실행 화면 Visual Basic 2010
예제5-6 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text Do Until 사용 TextBox txtResult Button 1부터 100까지의 3의 배수의 합 Visual Basic 2010
예제5-6 코드 작성 Private Sub Button1_Click() Handles Button1.Click Dim intN as Integer, intSum as Integer intSum = 0 : intN = 3 ' 두 개의 문장을 한 행에 쓸 때는 “:”로 구분 Do Until intN > 100 ' intN의 값이 100보다 큰 값을 가질 때까지 반복 intSum = intSum + intN intN = intN + 3 Loop txtResult.Text = intSum End Sub Visual Basic 2010
예제5-7 1부터 100까지의 3의 배수의 합(Do While 사용) 초기 화면 실행 화면 Visual Basic 2010
예제5-7 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text Do While 사용 TextBox txtResult Button 1부터 100까지의 3의 배수의 합 Visual Basic 2010
예제5-7 코드 작성 Private Sub Button1_Click() Handles Button1.Click Dim intN as Integer, intSum as Integer intSum = 0 : intN = 3 Do While intN <= 100 ' intN의 값이 100보다 작거나 같은 동안 반복 intSum = intSum + intN intN = intN + 3 Loop txtResult.Text = intSum End Sub Visual Basic 2010
While … Wend Do … Loop에 While을 이용한 경우와 유사 형식 수행 조건식이 만족하는 동안 명령문 수행 <명령문> Wend Visual Basic 2010
예제5-8 1부터 100까지의 3의 배수의 합(While 사용) 초기 화면 실행 화면 Visual Basic 2010
예제5-8 컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Text While 사용 TextBox txtResult Button 1부터 100까지의 3의 배수의 합 Visual Basic 2010
예제5-8 코드 작성 Private Sub Button1_Click() Handles Button1.Click Dim intN as Integer, intSum as Integer intSum = 0 : intN = 3 ' 두 개의 문장을 한 행에 쓸때는 “:”로 구분 While intN <= 100 ' intN의 값이 100보다 작거나 같은 동안 반복 intSum = intSum + intN intN = intN + 3 End While txtResult.Text = intSum End Sub Visual Basic 2010
5.1 반복문 5.2 구구단 작성기로 익히는 반복문 Visual Basic 2010
구구단 작성기로 익히는 반복문 그룹박스, 리스트박스, 라디오버튼을 배치하여 라디오버튼이 클릭되면 해당 구구단이 리스트박스에 출력 그룹박스 리스트박스 라디오버튼 Visual Basic 2010
컨트롤 속성 설정 컨트롤 이름 속성 설정 Form Form1 Text 구구단 작성기 GroupBox grpDan 9 X 9단 ListBox lstResult ScrollAlwaysVisible True RadioButton rdoB2 2단 rdoB3 3단 rdoB4 4단 rdoB5 5단 rdoB6 6단 rdoB7 7단 rdoB8 8단 rdoB9 9단 Visual Basic 2010
코드 작성(1) 텍스트 속성이 “2단”인 라디오버튼을 클릭하여 CheckedChanged 이벤트 발생 For…Next문 이용 Private Sub rdoB2_CheckedChanged(...) Handles rdoB2.CheckedChanged Dim i, rst As Integer lstResult.Items.Clear() For i = 1 To 9 rst = 2 * i lstResult.Items.Add(2 & " x " & i & " = " & rst) Next i End Sub Visual Basic 2010
코드 작성(2) 텍스트 속성이 “2단”인 라디오버튼을 클릭하여 CheckedChanged 이벤트 발생 Do…Loop문 이용 Private Sub rdoB2_CheckedChanged(...) Handles rdoB2.CheckedChanged Dim i, rst As Integer lstResult.Items.Clear() i = 1 Do While I <= 9 rst = 2 * i lstResult.Items.Add(2 & " x " & i & " = " & rst) i = i + 1 Loop End Sub Visual Basic 2010
실행 화면 Visual Basic 2010