C 7Day (20160115)
by jennysgap조건문(삼항 연산자)
조건문(삼항 연산자) 예제
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main(void) { int num, abs; printf("정수 입력 : "); scanf("%d", &num); abs = num>0 ? num : num*(-1); printf("절댓값 : %d \n", abs); return 0; } | cs |
if else 문으로 구현해보기
if (num>0)
abs=num;
else
abs=num*(-1);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> int main(void) { int num, abs; printf("정수 입력 : "); scanf("%d", &num); if (num>0) abs=num; printf("절댓값 : %d \n", abs); else abs=num*(-1); printf("절댓값 : %d \n", abs); return 0; } | cs |
if문 문제
두 개의 정수를 입력 받아서 두 수의 차를 출력하는 프로그램을 작성하자. 단, 무조건 큰 수에서 작은 수를 뺀 결과를 출력해야 한다.
예를들어 두 수가 순서에 상관없이 7과 19라면 12가 출력이 되어야 한다. 즉, 출력의 결과는 무조건 0이상이 되어야 한다.
http://colorscripter.com/s/5xECkQc세 과목(국어, 수학, 영어)의 성적을 입력받아 합계와 평균을 구하고 평균이 90이상이면 "A", 80이상이면 "B", 70이상이면 "C", 60이상이면 "D", 60미만이면 "F"를 출력하시오.
http://colorscripter.com/s/GW3XM2A대소문자를 변환하는 프로그램을 만드시오
예를 들어 A가 입력되면 a 출력a가 입력되면 A가 출력
http://colorscripter.com/s/46ONEmr
조건문(switch-case문)
다중 if문의 표현식과 비슷한 방법으로 실행
식에 맞는 부분을 찾아서 실행
프로그램 상 메뉴를 만드는 곳에 주로 쓰임
조건문(switch-case) 예제
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 | #include <stdio.h> int main(void) { int num; printf("1이상 5이하의 정수 입력 : "); scanf("%d", &num); switch(num) { case 1: printf("1은 one \n"); break; case 2: printf("2은 two \n"); break; case 3: printf("3은 three \n"); break; case 4: printf("4은 four \n"); break; case 5: printf("5은 five \n"); break; default: printf("I don't know! \n"); } return 0; } | cs |
switch (식) : 조건문이 아니고 식이 들어간다는 것!!!!
default : 예외 상황을 입력 할 수 있음
장점 : 식의 해당되는 부분만 실행되고 나머지는 넘어감
break : case마다 break를 다 입력해야 한다. switch-case 탈출하는 용도로 만들었음
그렇다면 아예 설계할 때부터 빠져 나가게 하면 되지 왜 만들었을까? break를 일부로 삽입하지 않는 경우도 있기 때문이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> int main(void) { char ch; printf("M:오전, A:오후, E:저녁 \n"); scanf("%c", &ch); switch(ch) { case 'M': case 'm': printf("Morning \n"); break; case 'A': case 'a': printf("Afternoon \n"); break; case 'E': case 'e': printf("Evening \n"); break; } return 0; } | cs |
switch문과 if~else문의 비교
if...else if...else보다 switch문이 간결해 보이기 때문에 switch문을 더 선호한다.
switch문으로 구현할 수 있는 조건의 구성에는 한계가 있다.
문제!
- switch문을 이용해 사칙연산 할 수 있는 계산기를 만들어보자
http://colorscripter.com/s/EqJZYFG - 사용자에게 숫자 하나를 입력받은 후 그 수가 0이상 10미만, 10이상 20미만, 20이상 30미만, 30이상인지 알려주는 프로그램을 만들어보자.
예를들어 22가 입력이 되면 "20이상 30미만 입니다" 를 출력하도록 하자
http://colorscripter.com/s/EY00x27
goto문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> { int num; printf("자연수 입력 :"); scanf("%d", &num); if (num == 1) goto ONE; else if (num == 2) goto TWO else goto OTHER; ONE: printf("1을 입력하셨습니다. \n"); goto END; TWO: printf("2을 입력하셨습니다. \n"); goto END; OTHER: printf("3혹은 다른 값을 입력하셨습니다. \n"); END: } | cs |
지금은 C언어의 절차지향적인 부분을 방해한다고 해서 지금은 사용 안함
그러나 기존 회사에서 만들어진 프로그램이 있을 수도 있으니 분석은 할 줄 알아야 합니다.
선생님 왈 : 아 몰라도 됨!!! 걍 그런게 있다고~~ ㅋㅋㅋ 아 몰라몰라몰라 ㅋㅋ
C언어에 관한 면접 질문
- 조건문 if와 switch의 차이점이 뭔가요?
- 방법론 while과 for의 차이점이 뭔가요? 어떤 상황에서 사용하는가?
- pointer 개념이 뭔가? 왜 사용하는가?
- point 개념이 뭔가?
'BOX' 카테고리의 다른 글
C 9Day (20160119) (0) | 2016.01.21 |
---|---|
C 8Day (20160118) (0) | 2016.01.21 |
C 6Day (20160114) (0) | 2016.01.20 |
C 5Day (20160113) (0) | 2016.01.20 |
C 4Day (20160112) (0) | 2016.01.20 |
블로그의 정보
jennysgap
jennysgap