본문 바로가기
C++ Programming/기억해야할 점

4. switch문, goto문

by 쵸빙 2020. 5. 3.

switch문과 goto문에 대해 정리해보겠다.

 

 

 

 

 

 

● switch문

 

1. switch(a)에 들어가는 a의 조건

-switch문에는 원래 정수만 들어가야하지만 문자도 ASCII 코드로 저장되기 때문에 가능하다.

 

 

2. 여러 조건에서 같은 결과를 수행

case 1:

case 3:

case 5:

printf(“a”);

break;

case 7:

case 9:

printf(“b”);

break;

이런 식으로 하면 된다. 1, 3, 5에서는 a가 출력되고, 7, 9에서는 b가 출력된다.

이 때 각 케이스마다 break;을 써주는 것을 잊지 말아야 한다.

 

 

 

 

 

 

 

 

 

● goto문

goto 명령문을 사용하면 간단한 반복 실행을 만들 수 있다.

반복 실행 부분을 빠져나오기 위해(즉 무한 반복을 방지하기 위해)

반복 실행 되는 도중에 조건을 검사해야 한다.

 

goto 이름:

이 명령은 이름: 이 작성된 곳으로 프로그램의 실행 흐름을 바꾸어 준다.

 

"이름:" 과 같이 콜론(:)이 붙어있는 부분을 이름표(label, 레이블)라고 한다.

레이블은 특별한 선언 없이 사용할 수 있으며 언더바(_)나 영문자로 시작하면 된다.

레이블은 한 단어처럼 공백없이 모두 붙여 써야 한다.

 

switch( ) ... case ... : ... break; 에서

case ... : 도 일종의 레이블이라고 생각할 수 있다.

 

goto 레이블:

명령을 사용하면 반복되는 부분을 여러 개 자유롭게 만들 수 있다.

 

goto 명령은 반복 실행을 만들어낼 수 있는 가장 간단한 명령이지만,

복잡하게(스파게티 코드) 사용하는 경우, 이해가 어렵고 오류가 생기기 쉽다.

 

 

예시

int n;

reload: //레이블은 콜론(:)으로 끝내고, 일반적으로 들여쓰기를 하지 않는다.

scanf("%d", &n);

printf("%d", n);

if(n!=0) goto reload; //reload라고 적혀있는 레이블로 실행 이동

 

 

 

 

 

 

 

 

 

 

계속 공부해나가면서 switch문과 goto문에 관련하여 기억해야할 점을 채워나가겠다.

'C++ Programming > 기억해야할 점' 카테고리의 다른 글

6. 문자열 다루기  (0) 2020.05.03
5. 알고리즘  (0) 2020.05.03
3. shift, bool, 논리 연산자, 3항 연산자  (0) 2020.05.03
2. 출력  (0) 2020.05.03
1. 입력  (0) 2020.05.03