1 / 43

C Programming Review

C Programming Review. 제어문 함수 배열. 목차. 제어문 개념 선택문 if 문 관계 및 논리 연산자 if – else if – else if - else if 실습 예제 반복문 while 문 증감 (++, --) 및 대입 (+=, -= … ) 연산자 for 문 do-while 문 반복문 실습 문제들. 제어문 이란 ?. 순차적으로 실행되는 프로그램의 순서를 변경하고자 할 때 사용되는 문장을 제어문이라 한다 . 프로그램 작성 논리의 중요한 부분

gore
Download Presentation

C Programming Review

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C Programming Review 제어문 함수 배열

  2. 목차 • 제어문 개념 • 선택문 • if 문 • 관계 및 논리 연산자 • if – else • if – else if - else • if 실습 예제 • 반복문 • while 문 • 증감 (++, --) 및 대입 (+=, -= …) 연산자 • for 문 • do-while 문 • 반복문 실습 문제들 C-Program I Review

  3. 제어문 이란? • 순차적으로 실행되는 프로그램의 순서를 변경하고자 할 때 사용되는 문장을 제어문이라 한다. • 프로그램 작성 논리의 중요한 부분 • 제어문의 종류 C-Program I Review

  4. if 문 형식 및 의미 • 형식: • if (조건식) 문장; • if (조건식) { 문장1; 문장2; .. } • {, } 은 제어문의 유효범위를 표시, 없으면 제어문 다음의 한 문장만 유효 범위가 된다. • 주어진 조건에 따라 문장을 수행 • 선택적으로 else, else if 등과 함께 사용될 수 있음 C-Program I Review

  5. if 문 형식 및 의미(계속) • 조건식 • 참/거짓 으로 판명될 수 있는 문장(관계 및 논리 연산자) • 실제 C 언어에서 참/거짓은 정수(1/0)등으로 계산 • 판별 시는 0(거짓), 0이외의 값(참), 연산 시에는 0(거짓), 1(참) • 조건식 예 • if( i > 0) : i 가 0 보다 크면 참(1), 그렇지 않으면 거짓(0) • if( i > 0 && i <10) : i 가 0보다 크고 10 보다 작으면 참(1) • if( i ) : i 가 0 이면 거짓, 그 외의 값은 모두 참 • if 문 예 int num; scanf(“%d”,&num); if (num<0) printf(“\n number is negative”); if (num>-1) printf(“\n number is not negative”); C-Program I Review

  6. 관계 연산자 • 크다 작다를 판정하여 참/거짓(1/0)값을 되돌려 줌. • 제어문 등의 조건식에 주로 사용됨. • 우선 순위는 산술 연산자 보다 낮다. • 연산자 종류 연산자 내용 ----------------------------------------------------------- < 작다(less than) <= 작거나 같다(less than or equal to) > 크다(greater than) >= 크거나 같다(greater than or equal to) == 같다(equal to) != 같지 않다(not equal to) ----------------------------------------------------------- • 사용 예 if( x < y ) ..... while( x >= y ) .... if( x == y ).... C-Program I Review

  7. 논리 연산자 • 논리적 곱/합 등을 나타내며 그 결과는 관계 연산자와 같이 참/거짓(1/0)를 되돌려 줌. • 우선 순위는 산술, 관계연산자 보다 낮다. • 연산자 종류 연산자 내용 ---------------------------------------------------- && AND(둘 다 참일 경우만 참) || OR(둘 중 하나만 참이면 참) ! NOT(참은 거짓으로, 거짓은 참으로) --------------------------------------------------- • 사용 예 if( x>y || y!=z ) .... if( !(x>0) ) ... if( x>2 && y>10 ) ... if( !x ) C-Program I Review

  8. 관계/논리 연산 결과 • 다음의 문장의 결과는? • 예제 • int a,b; • a = 1 > 2; • b = 2 > 1; • if (a) • printf(“\n %d”, a); • else • printf(“\n %d”, b); • if (!1) • printf(“\n %d”, a+b); • 관계/논리 연산자결과 • 참 : 1 • 거짓: 0 • 관계/논리 연산자 판별 • 0이 아닌 모든 값: 참 • 0 : 거짓 C-Program I Review

  9. if – else 문장 • 형식 • if(조건식) 문장 1; else 문장 2; • if(조건식) { 문장들 } else { 문장들 } • 예제 • int num; • scanf(“%d”,&num); • if (num<0) • printf(“\n number is negative”); • else • printf(“\n number is not negative”); C-Program I Review

  10. if - else if – else 문장 • 형식 if(조건식 1) { 문장들 } else if (조건식 2) { 문장들 } else if (조건식 3) { 문장들 } else { 문장들 } • 예제 • int num; • scanf(“%d”,&num); • if (num<0) • printf(“\n number is negative”); • else if (num==0) • printf(“\n number is 0”); • else • printf(“\n number is positive”); C-Program I Review

  11. 참고사항 • if 문만 사용도 가능하고, if-else 문만 사용도 가능하며, if-else if 문만 사용도 가능하다. • 즉 어떤 조합도 상관없다. • if 문 등의 조건에 해당되는 문장이 하나일 경우에는 {, } 을 사용할 필요가 없으며, 조건에 해당되는 문장이 둘 이상일 경우에는 {, }을 사용하여 그 유효 범위를 정확히 지정해야 한다. • 들여쓰기 및 의미 있는 변수 명 쓰기(좋은 습관) • 들여쓰기 할 경우 무조건 [Tab] 사용 ([Space bar] 쓰지 말 것!! ) • 변수를 선언할 때 자신의 기능에 따라 의미 있는 이름을 붙이는 습관을 들일 것(나중에 좀 큰 프로그램을 작성할 경우, 판독성이 높아지고, 변수의 잘못된 사용을 막을 수 있다.) • 예) 합계을 계산하는 변수 => sum total C-Program I Review

  12. if문 관련 예제 • 예제 1 : 두 수(정수)를 입력 받아, 그 중 큰 수를 출력하는 프로그램을 작성하시오. #include <stdio.h> int main(void) { int a, b; printf(“\n Enter two number: “); scanf(“%d%d”,&a,&b); if (a>b) printf(“\n %d”, a); else printf(“\n %d”, b); return 0; } C-Program I Review

  13. 예제 2: 하나의 정수를 입력 받아 이 수가 짝수(even number) 인지 홀수(odd number)인지를 출력하는 프로그램을 작성하시오. #include <stdio.h> int main(void) { int in; printf(“\n\n Input Number :”); scanf(“%d”, &in); if ( in%2 == 0) printf(“\n This is Even number !!”); else printf(“\n This is Odd number !!); return 0; } C-Program I Review

  14. 실습 문제 • 예제1: 년도를 입력하면 윤년인지 평년인지를 판단하는 프로그램을 작성하시오. • 예제2: 영문자 하나를 입력 받아, 이 문자가 소문자이면 대문자로, 대문자이면 소문자로 변환하여 출력하는 프로그램을 작성하시오. 그리고 입력한 문자가 영문자가 아닐 경우에는 변환할 수 없는 문자라는 에러 메시지를 출력하시오 Hint: 년도를 4로 나누어 나머지가 0이고,100으로 나누었을 때나머지가 0이 아니면 윤년, 단 예외로 100으로 나누었을 때 나머지가 0이라도 400으로 나누었을 때 나머지가 0이면 윤년이됨 Hint: 영문자 ‘a’는 ASCII 코드로 97, 대문자 ‘A’는 ASCII 코드로 65이며, 각 영문자들은 연속적 ASCII 코드 값이 할당됨(‘b’는 98, ‘B’는 66으로 …) C-Program I Review

  15. while 문 • 조건에 따라 특정 문장(들)을 일정 횟수 동안 반복하여 실행하고자 할 때 사용 • 형식 while(조건식) { 문장1; 문장2; …… } • 먼저 조건을 검사하여 거짓이면 while 문 탈출, 참이면 문장을 실행하고 다시 조건 검사, (이렇게 계속 반복) C-Program I Review

  16. while문 예제 1 • 1부터 10까지 연속 출력하는 예제 #include <stdio.h> int main(void) { int count; count = 1; /* 초기 인덱스 설정 */ while (count <= 10) /* 조건식 */ { printf(“ %d ”, count); count = count + 1; /* 조건 탈출을 위한 증가식 */ } return 0; } C-Program I Review

  17. while문 예제 2 • 10개의 정수를 입력 받아 그 총합을 출력하는 프로그램. #include <stdio.h> int main(void) { int num, sum, count; count=1; sum=0; while (count <= 10) { scanf(“%d”, &num); sum = sum+num; count = count+1; } printf(“\n Sum = %d”, sum); return 0; } C-Program I Review

  18. while문 실습 • 1부터 100사이의 숫자(정수) 중에서 3의 배수(3,6,9,12,..)들의 총합을 출력하는 프로그램을 작성하시오. C-Program I Review

  19. 증감 연산자.(++, --) • 단항 연산자로서 하나의 변수 값을 1 증가, 감소할 때 사용된다. • 형식 • ++ : 변수의 값을 1 증가. num++; ++count; • -- : 변수의 값을 1 감소. num--; --count; #include <stdio.h> int main(void) { int count; count = 1; while (count <= 10) { printf(“ %d ”, count); count++; } return 0; } C-Program I Review

  20. 대입 연산자(+=, -=, *= ...) • 변수의 현재 값에 누적한 계산을 수행 • 종류 += -= *= /= • 형식 및 정의 a += b; => a = a + b; a -= b; => a = a - b; a *= b; => a = a * b; a /= b; => a = a / b; C-Program I Review

  21. 대입 연산자 예제 #include <stdio.h> int main(void) { int num, sum, count; count=1; sum=0; while (count <= 10) { scanf(“%d”, &num); sum += num; count += 1; } printf(“\n Sum = %d”, sum); return 0; } C-Program I Review

  22. for 문 • 형식 for( 초기화; 반복조건; 증감식 ) { 문장; 문장; .. } • 초기화: for문 진입 시 단 한번만 수행 • 반복조건: for문 반복 시마다 반복 조건을 검사 • 증감식: for문 한번의 반복이 끝날 때마다 증감식 수행 • 각 문장(초기화, 반복 조건, 증감식)들은 경우에 따라 생략 가능하다. C-Program I Review

  23. for문 예제 #include <stdio.h> int main(void) { int count; for (count=1; count<=10; count++) printf(“ %d ”, count); return 0; } #include <stdio.h> int main(void) { int num, sum, count; sum=0; for (count=1; count <= 10; count++) { scanf(“%d”, &num); sum += num; } printf(“\n Sum = %d”, sum); return 0; } C-Program I Review

  24. for문 실습 • 1부터 100사이의 숫자(정수) 중에서 3의 배수(3,6,9,12,..)들의 총합을 출력하는 프로그램을 작성하시오.(for문) • 어떤 양의 정수(n)를 입력 받아, 그 수의 2n을 구하는 프로그램을 작성하시오. C-Program I Review

  25. do-while 문 • 형식 do { 문장1; 문장2; …… } while(조건식); • while문과 거의 동일하게 조건에 따라 반복하는 문장을 수행 • 반복할 문장을 수행한 후, 조건을 검사하여 거짓이면 do-while 문 탈출, 참이면 문장을 다시 반복하고 조건 검사, (이렇게 계속 반복) • while과 다르게 적어도 한 번 이상은 문장들을 수행 • while(조건식); -> 세미콜론 주의 할 것 C-Program I Review

  26. do-while 문 예제 #include <stdio.h> int main(void) { int count; count = 1; do { printf(“ %d ”, count); count++; } while (count <= 10); return 0; } #include <stdio.h> int main(void) { int num, sum, count; count=1; sum=0; do { scanf(“%d”, &num); sum += num; count++; } while (count <= 10); printf(“\n Sum = %d”, sum); return 0; } C-Program I Review

  27. 입력의 유효성 검사 • do-while 문은 사용자 입력을 걸러내고 데이터 유효성 검사를 제공하는 데 유용 • do-while 문을 이용한 유효성 검사의 예 • ……… • do • { • printf(“\n Enter a score(0 ~ 99) : “); • scanf(“%d”, &score); • } while (score < 0 || score > 99); • ………… C-Program I Review

  28. do-while 실습 • 1부터 100사이의 숫자(정수) 중에서 3의 배수(3,6,9,12,..)들의 총합을 출력하는 프로그램을 작성하시오.(do-while문) • 0이 입력될 때까지 계속 정수를 입력 받고, 입력된 모든 숫자들의 총합을 출력하시오. C-Program I Review

  29. 반복문 비교(while, do-while) #include <stdio.h> int main(void) { int sum, count; count=1; sum=0; while (count <= 100) { sum += count; count++; } printf(“\n Sum = %d”, sum); return 0; } #include <stdio.h> int main(void) { int sum, count; count=1; sum=0; do { sum += count; count++; } while (count <= 100); printf(“\n Sum = %d”, sum); return 0; } C-Program I Review

  30. 반복문 비교(for) #include <stdio.h> int main(void) { int sum, count; sum=0; for (count=1; count <= 100; count++) sum += count; printf(“\n Sum = %d”, sum); return 0; } C-Program I Review

  31. 반복문의 선택 • C언어에서 for 문과 while 문은 동등하기 때문에 서로 바꿔 쓸 수 있다 • 주 종목 • for 문은 주로 고정 카운트 반복에 쓰이고 (반복 횟수가 고정된 경우) • while 문은 주로 변수 조건 반복에 쓰인다(반복 횟수가 가변적인 경우) • do-while은 while문과 흡사하나, 앞의 설명과 같이 입력의 유효성 등을 검사할 때 널리 사용된다. • 일반적으로 for문의 사용 빈도가 제일 높고, do-while문의 사용 빈도가 제일 낮다. C-Program I Review

  32. switch 문 • 다중 선택문으로서 if, else if 문장을 여러 번 사용하는 것 대신 간단히 문장을 구성할 수 있다. • 형식 switch( 변수[수식] ) { case 값1 : 문장1; break; case 값2 : 문장2; break; : default : 문장 n; } ==> if( 조건==값1 ) 문장 1; else if( 조건==값2 ) 문장 2; else if( 조건==값3 ) 문장 3; : else 문장 n; C Program-I Review

  33. switch문(계속) • break 문은 전체 switch 문을 탈출하는 용도로 사용된다. • 주의 사항 • switch문은 하나의 변수(수식) 값이 일치하는 경우의 문장을 수행한다. • if ~ else if 처럼 관계 연산자에 의한 조건을 지정하는 것이 아니다. • break 문을 잊어버리지 않도록 주의 할 것. • break문이 없으면 그 아래 문장을 순차적으로 실행하게 됨. C Program-I Review

  34. switch문 예제 1 int i, j, choice, result; scanf(“%d %d”, &i, &j); printf(“input 1) add 2) subtract 3) multiply 4) divide”); scanf(“%d”, &choice); switch(choice) { case 1: result = i+j; break; case 2: result = i-j; break; case 3: result = i*j; break; case 4: result = i/j; break; default: printf(“\n input error”); } printf(“\n result = %d”, result); C Program-I Review

  35. switch문 예제 2 char ch; printf(“\n Input character :”); scanf(“%c”, &ch); switch(ch) { case ‘a’: /* 여러 case문이 코드를 공유할 수 있음 */ case ‘e’: case ‘i’: case ‘o’: case ‘u’: case ‘y’: printf(“\n is a vowel.”); break; default: printf(“\n is a consonant.”); } C Program-I Review

  36. break 문 • switch, do-while, while, for와 같은 반복/제어 문 내에서 사용되며, 그 반복 블록을 무조건 탈출한다. • 반복을 탈출하여 반복 문 뒤의 문장을 수행하게 함. • 중첩 반복 문 일 경우에는 가장 안쪽의 블록을 탈출한다. C Program-I Review

  37. break 예제 1 #include <stdio.h> int main(void) { int i; for(i=1; i<100; i++) { printf(“%d”, i); if ( i==10) break; } return 0; } C Program-I Review

  38. break 예제2 (무한 반복문과 사용) #include <stdio.h> int main(void) { int sum=0, i; for(; ;) /* 무한 반복 while(1)과 동일 */ { scanf(“%d”, &i); sum += i; if ( i==0) break; } printf(“\n Sum = %d”, sum); return 0; } C Program-I Review

  39. break 예제3 #include <stdio.h> int main(void) { int i, j; for(i=1; i<=5; i++) { for(j=1; j<=100; j++) { printf (“%d %d”, i, j); if ( j==5) break; } printf(“\n”); } return 0; } C Program-I Review

  40. continue 문 • 반복 제어문 중간에서 나머지 반복문 코드를 무시하고 반복제어문의 처음(조건 검사문)으로 제어를 변경시켜준다. /* 수행 결과는 ? */ #include <stdio.h> int main() { int s=0, i; for(i=1; i<=10; i++) { if( i % 2 ) continue; s += i; } printf(“\n sum = %d", s); return 0; } C Program-I Review

  41. goto 문 • goto label; 이 문장을 만나면 무조건 label이 있는 곳으로 분기한다. • 프로그램 상의 심각한 오류가 발생했을 경우, 여러 중첩문을 한꺼번에 탈출할 때 사용할 수 있다. • 최대한 사용하지 않는 것이 좋다.(프로그램의 판독성을 저해한다.) C Program-I Review

  42. goto 문 예제 #include <stdio.h> int main(void) { int sum=0, i; i = 1; again : sum += i++; if ( i <= 10) goto again; printf(“\n Sum = %d”, sum); return 0; } C Program-I Review

  43. 실습 문제 • 1부터 9사이의 숫자 하나를 입력 받아 그 숫자의 구구단을 출력하는 프로그램을 작성하시오.(5이면 5단을 출력) • 위의 문제에서 1부터 9사이 이외의 숫자를 사용자가 잘못 입력할 수도 있으니, 이 경우에 잘못된 숫자라는 것을 알려주고 다시 숫자를 입력 받도록 수정하시오.(입력의 유효성 검사) • 사용자가 입력한 수의 약수들을 모두 출력(1과 자신은 제외)하는 프로그램을 작성하시오. • 8 => 2 4 • 12 => 2 4 6 • 위의 문제를 0을 입력하기 전까지는 계속 수행하도록 수정하시오. C-Program I Review

More Related