sitelink1 | |
---|---|
sitelink2 | |
extra_vars5 | |
extra_vars6 |
반복 비교
반복문을 사용시에는 무한루프에 빠지지 않도록 주의해야한다.
?Do ... Loop
?선조건 후실행 구문 Do [{While | Until } 조건] 실행코드 [Exit Do] 실행코드 Loop |
?후조건 선실행 구문 Do 실행코드 [Exit Do] 실행코드 Loop [{While | Until } 조건] |
조건비교시 While 과 Until 을 사용할 수 있는데 While 는 뜻 그대로 조건이 일치하는 동안 루프가 실행되고,
Until 은 조건이 일치할때까지 루프가 실행된다.(즉 Until에서는 조건이 만족되면 루프가 종료된다.)
Exit Do 는 루프실행중에 루프문을 빠져나갈 수 있다.
예제) 1 ~ 10까지 더하는 예제 최종 j 값은 55 , 100까지 더한 값을 얻으려면 코드에서 Do Until i = 100 으로 고치면 되겠쥐.
텍스트박스하나 더 만들어서 더할값을 받아서 계산하도록 만들어바바바.
Private Sub Command1_Click() Dim i, j As Integer ' i 의 값이 10이 될때까지 실행된다. Do Until i = 10 ' 구문이 반복될때마다 i 값이 1씩 증가한다. ' i 값에는 0,1,2,3,4,5,6,7,8,9 가 들어간다. 즉 10번 반복. i = i + 1 j = i + j Loop Text1 = j End Sub |
Private Sub Command1_Click() Dim i, j As Integer ' i 의 값이 10보다 작은동안만 실행된다. ' 즉 i 가 10되서 돌아오면 루프가 중지된다. Do While i < 10 ' i 값에는 0,1,2,3,4,5,6,7,8,9 가 들어간다. i = i + 1 j = i + j Loop Text1 = j End Sub |
그런데 만약 이 구문안에서 i 가 영원히 10 이 될 수 없다면 어떻게 될지 생각해봅시다.
=> 들어는 보셨는가? 무한루프라고... (비베에서 프로그램을 만들다가 무한루프가 돌면 거의 비베자체가 다운된다... 나만 그럴수도...^^;)
Private Sub Command1_Click() Dim i, j As Integer For i = 1 To 10 j = i + j Next i Text1 = j End Sub |
예제1) 1부터10까지 더한값 구하기. 위에 Do Until 문을 사용하는 것보다 간단한게 보이쥐? For 문에서는 i 값을 1에서 10까지 자동으로 증가시켜서 넣어버리니깐두루. For 문에서 10에서 1까지의 점점 줄어드는 값을 넣을려면 뒤에 증감치를 명시해야한다. 예) For i = 10 To 1 Step -1 |
Dim AbC(1 to 5, 1 to 10) As string For i = 1 To 5 For j = 1 To 10 grid1.row = i grid1.col = j AbC( i, j ) = grid1.Text Next j Next i ' 실행되면 i = 1일때 j 는 1 ~ 10까지 10번돌고 다시 i=2 가되고 j 가 다시 10번돌고... 이렇게해서 i 가 5 번실행되고 j는 50번 실행. |
예제2) For 문의 중첩사용 예제.
위와 같은 그리드(5*10)가 있고 이안에 값들이 있다는 가정하에 이 안에 있는 값들을 전부 이차원배열로 선언된 AbC라는 변수에 집어넣는 예제를 보인것이다. Text1.text = AbC(2,4) 라고 하면 텍스트박스에는 위 표에서 i=2 이고 j=4인 값에 해당하는 "n"이라는 값이 들어간다. |
?For Each 구성요소 In ... Next
For Each 구성요소 In 배열, 컨트롤모음(컬렉션),개체모음(컬렉션) 실행코드 [Exit For] Next [구성요소] |
예제) 폼안에 있는 컨트롤들의 이름을 리스트박스에 보여줌.
For Each Control In Form1.Controls '폼에 등록된 컨트롤들의 컬렉션이 Form1.Controls 이다.
List1.Additem Control.Name '컨트롤들의 Name프로퍼티 값을 리스트박스에 추가
Next
End Sub
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
16 | float(단정밀도 부동소수점), double(배정밀도 부동소수점) | 황제낙엽 | 2015.01.16 | 670 |
» | Visual Basic 기본문법 - 반복비교문(loop) | Cugain | 2007.02.21 | 175 |
14 | Visual Basic 기본문법 - 비교문(If,Select) | Cugain | 2007.02.21 | 108 |
13 | Visual Basic 기본문법 - 프로시저&함수, 주석문,줄넘기 등의 비베기초사항 | Cugain | 2007.02.21 | 123 |
12 | Visual Basic 기본문법 - 변수의 배열 선언,연산자 | Cugain | 2007.02.21 | 658 |
11 | Visual Basic 기본문법 - 데이터형과 상수, 변수 | Cugain | 2007.02.21 | 631 |
10 | Visual Basic Programming - 복습 | Cugain | 2007.02.21 | 118 |
9 | Visual Basic Programming - 소트 | Cugain | 2007.02.21 | 176 |
8 | Visual Basic Programming - 배열 | Cugain | 2007.02.21 | 191 |
7 | Visual Basic Programming - 리스트 박스 | Cugain | 2007.02.21 | 239 |
6 | Visual Basic Programming - 루프 | Cugain | 2007.02.21 | 368 |
5 | Visual Basic Programming - 조건문과 루프 | Cugain | 2007.02.21 | 358 |
4 | Visual Basic Programming - 꾸미기 | Cugain | 2007.02.21 | 134 |
3 | Visual Basic Programming - 변수 | Cugain | 2007.02.21 | 193 |
2 | Visual Basic Programming - 메시지와 그림이 있는 폼 | Cugain | 2007.02.21 | 318 |
1 | Visual Basic Programming - 시작 | Cugain | 2007.02.21 | 326 |