Limetime's TimeLine
article thumbnail
Published 2018. 5. 24. 02:28
(9) 제어문 - 분기문 Visual Basic
반응형

(9) 제어문 - 분기문

※ 제어문 : 주어진 상황에 따라 명령문들의 수행 경로를

달리하거나 반복해야 하는 경우에 사용.


*제어문의 종류!

분기문과 반복문으로 나뉨

1) 분기문 : If문과 Select-case 문, Goto 문이 있다.

2) 반복문 : For-Next 문과 For Each-Next 문,

Do Loop 문이 있으며

Do Loop 문에는 Do {While | Until} - Loop 문과

Do - Loop {While | Until} 문이 있음



※ 분기문 : 다양한 수행 경로 중 

조건에 따라 수행 경로를 변경

혹은 분기하기 위한 명령문

(If문, Select Case문, Goto문)


휴대폰 판매점에서 사은품 행사가

진행중이라고 하자.

분기의 예시.


분기문은 

ⅰ) 조건이 하나일 때

=> 단일 If 문

ⅱ) 조건이 둘 이상일 때

=> 다중 If 문, 중첩 If 문 Select-case 문

ⅲ) 무조건 분기할 때

=> Goto 문

이렇게 세 가지로 나뉜다.


ㆍIf 문

① 단일 If 문 : 하나의 조건에 따라 수행할

명령을 결정하는 분기문으로 사용


<사용 형식>

If 조건식 Then

문자1

문장2

...

End If


<설명>

만약(If)애 조건식이 이면 명령문(문장1,문장2,...)을

수행하고, 거짓이면 If문을 종료하여 End If문 다음 문장 수행


<표현 형식>

If 조건 Then 문장1 : 문장2


ㆍIF-THEN-ELSE 문

: C언어의 If-Else문

<사용 형식>

if 조건식 then

문장1

문장2

...

else

문장a

문장b

...

end if


<설명>

조건식이 이면 명령문 if의

[문장1, 문장2, ...]을 수행하고

빠져나가고,

거짓이면 else 이하의 문장들을

수행하고 end if를 만나 빠져나간다.


<표현 형식>

If 조건 Then 문장1 Else 문장2

'참'일 때 Then이하의 문장을 실행!

'거짓'일 때 Else이하의 문장을 실행!


ㆍ다중 If 문

: C언어의 ElseIf문 

<사용 형식>

if 조건1 then

문장1

...

elseif 조건2 then

문장a

...

[else

문장A

...]

end if


<설명>

조건1이 이면 명령문1

[문장1, ...]을 수행하고,

조건2가 이면 명령문2

[문장a, ...]을 수행한다.

모든 조건이 거짓이면

명령문3 [문장A,...]를 수행한다.

C언어 공부할 때 배웠던 부분이다.

빨간색 If문이 처음 실행되고

'참'이면 문장1을 실행하지만


'거짓'이면 빨간Else이하의 문장 실행!

= 파란 If문 실행 후 '참'이면 문장a 실행하지만


'거짓'이면 파란 Else이하의 문장 실행!

= 보라 If문 실행 후 '참'이면 문장A 실행하지만


'거짓'이면 Else이하의 문장α 실행 후

end if를 만나 빠져나옴.


즉! elseif는 

else와 if를 따로 떼어 보자!


ㆍSelect-Case 문

: C언어의 Case문

<사용 형식>

Select Case 변수

Case 상수1

문장1

...

Case 상수2

문장a

...

[Case Else

문장A

...]

End Select


<설명>

변수 값이 상수1이면 

명령문1 [문장1, ...]을 수행하고,

변수 값이 상수2이면

명령문2 [문장2, ...]을 수행한다.

변수 값이 어떤 상수 값과도

같지 않으면 명령문3 [문장A, ...]를 수행한다.


<표현 형식>

Select Case 변수

Case 상수

문장

...

[Case Else

문장

...]

End Select 

상수 값에는 숫자, 문자, 문자열도 가능.


Case 상수1 [, 상수2, 상수3, ...]

ex) Case 100,99,98,97,96,95,94,93,92,91,90

Case 상수1 To 상수n

ex) Case 90 To 100

Case Is op 상수

ex) Case Is >= 90

Case Is op  상수1 and/or  변수 op 상수2

ex) Case Is >= 90 And score <= 100

※ OP = Operation (관계연산자)


ㆍGoTo문

: 컴파일의 흐름을 거스르기 때문에

많이 사용하지 않음

(거의 사용 안한다고 함.

= 프로그램 꼬일 수 있음)

<사용 형식>

레이블 명 : 현재 위치를 레이블 명으로 지정.

Goto 레이블 명 : 레이블 명 위치로 무조건 이동.

GoTo 레이블

On 변수 GoTo 레이블, ...

On Error GoTo 레이블


<표현 형식>

On 변수 GoTo 상수1, 상수2

상수1 : 

문장

GoTo 상수3


상수2 : 

문장


상수3 : 

문장


<설명>

변수의 값이 상수1이면 

상수1 레이블로 이동 후 문장을 수행하고

상수3 레이블로 이동 후

상수3 레이블의 문장 수행.


변수의 값이 상수2이면 

상수2 레이블로 이동해서 문장 수행.


※ 상수 = 레이블 명







반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!