- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Link
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[C] Swich문과 If 문 비교 본문
if 문을 쓰는 경우는 조건안에 연산식등을 넣을 수 있어
성적처럼 어떤 범위를 제한하고 조건연산을 하기에 쉽습니다.
switch 문은 실제 분기가 숫자로 일치하는 경우에 분기합니다.
그렇기때문에 일치하지 않을 경우 처리를 위해 default 분기가 필요합니다.
switch 문은 state machine 에서 많이 사용합니다.
주로 자판기 알고리즘을 예로 많이 드는데
동전을 넣기 전 : 동전대기
동전을 넣는중 : 실제넣어진금액 계산과 음료수가격비교
버튼입력 대기중: 버튼 및 동전 대기
음료수 나오기 : 잔돈계산과 음료수 나오기
종료 : 다시 대기상태로...
대충 이런식으로 각 상태에서 머물면서 다른 상태로 이동하는
시스템을 말합니다. 각 상태를 좀더 세분화할 수는 있지만
다른 상태는 가질 수 없습니다. 각 상태에다 고유번호를 매겨놓을 경우
그 중간값은 가질수 없다는 이야기입니다.
이런경우
각 상태에서 머무르면서 입력 등을 기다리는 과정은
switch 문으로 작성하고
돈계산이라든지, 다른 스테이트로 넘어가는 조건 등을 연산하는 과정에서는
if 문으로 작성합니다.
동전의 경우도 51원짜리나 150원짜리 동전이 없기때문에
switch 로 동전의 가지수를 한정할수있습니다.
왜 그렇게 하느냐하면 직접 작성해보면 쉬울뿐더러
다른사람이 소스를 볼때 이해가 편하고
실제 일어나는 연산도 줄어들 수 있기 때문입니다.
대체로 if문은 true 또는 false(예 아니요)일 생황에서 많이 사용을 합니다. 예를 들어 if(sum>=60) printf("합격입니다"); else printf("불합격입니다"); 하지만 if문도 여러조건의 분기가 가능합니다. if(avg >=90) printf("당신의 학점은 A"); else if(avg >=80) printf("당신의 학점은 B"); else if(avg >=70) printf("당신의 학점은 C"); else if(avg >=60) printf("당신의 학점은 D"); else printf("당신의 학점은 F"); 이런식으로 여러 조건도 분기가 가능합니다. 근데 이럴 경우 switch 문을 쓰면 훨씬 간단해지죠 switch ((avg>=90) + (avg>=80) + (avg>=70) + (avg>=60)) { case 4 : printf("당신의 학점은 A"); break; case 3 : printf("당신의 학점은 B"); break; case 2 : printf("당신의 학점은 C"); break; case 1 : printf("당신의 학점은 D"); break; case 0 : printf("당신의 학점은 F"); break; } 이런식으로도 가능하죠... 어쩔땐 if문 여러번 분기가 편하고 어쩔때는 switch-case문이 편하고 그래요 골라 쓰시면 되요..하는일 100% 똑깥음~ |
'★─Programing > ☆─C | C++' 카테고리의 다른 글
[C] 포인터, 배열, 구조체 (0) | 2007.10.29 |
---|---|
[C] strstr 함수 (0) | 2007.10.29 |
[C] 파일입출력 > 파일의개방,종결 기본소스 (0) | 2007.09.06 |
[C] 야구게임(퍼즐스트라이크) 구현소스 (0) | 2007.08.08 |
[C] 반복문 이용한 "바람개비" 소스 (0) | 2007.08.07 |
Comments