쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
누구나 즐기는 C언어 콘서트 제5장 조건문.
Power C++ 제3장 선택과 반복.
제6장 조건문.
Power Java 제6장 조건과 반복.
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
6장 명령문.
제 4 장 프로그램 제어문 C 프로그래밍.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
Chapter 7. 조건문.
Chapter09 JavaScript 구구단표 만들기
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Chapter 04 C 연산자의 이해.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
C언어 콘서트 제6장 반복문.
어서와 Java는 처음이지! 제3장선택과 반복.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Chapter 06. 선택문.
2주차: 변수, 수식, Control Flow.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
6장. printf와 scanf 함수에 대한 고찰
2007 1학기 11 프로젝트 기초 실습.
순서도.
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
제어문 & 반복문 C스터디 2주차.
에어 조건문.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
제 5장 제어문 Hello!! C 언어 강성호 김학배 최우영.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Chapter 08. 함수.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
SPL3D Printer If 조건문.
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
Chapter 08 조건문.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
제어문Control Statements
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
개정판 누구나 즐기는 C언어 콘서트 제5장 조건문 출처: pixabay.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express

이번 장에서 학습할 내용 조건문이란? if 문 if-else 문 중첩 if 문 switch 문 break문 continue문 5장까지는 문장들이 순차적으로 실행된다고 하였다. 하지만 필요에 따라서 조건이 만족되면 문장의 실행 순서를 변경할 수 있는 기능이 제공된다. 조건문이란? if 문 if-else 문 중첩 if 문 switch 문 break문 continue문 goto문

조건문 조건에 따라서 여러 개의 실행 경로 가운데 하나를 선택 문장이 실행되는 순서에 영향을 주는 문장 조건에 따라서 여러 개의 같은 처리를 반복

일상 생활에서의 조건문의 예 만약 비가 오지 않으면 테니스를 친다. 만약 결석이 1/3이상이면 F학점을 받는다. 만약 시간이 없는 경우에는 택시를 탄다. 만약 날씨가 좋고 공휴일이면 공원에 산책을 간다. 점수가 60점 이상이면 합격이고 그렇지 않으면 불합격이다. 조건문은 프로그램의 흐름을 변경합니다.

if 문 조건에 따라서 결정을 내리는 경우에 사용 조건에 따라서 결정을 내리는 경우에 사용 if (조건식) 문장; 조건식이 참으로 계산되면 if (조건식)       문장; 문장이 실행된다.

if 문의 예 if (number > 0) printf("양수입니다\n"); if (temperature < 0)    printf("현재 영하입니다.\n");           // 조건이 참일 때만 실행 printf("현재 온도는 %d도 입니다.\n", temperature); // 항상 실행

복합문 복합문(compound statement) 중괄호를 사용하여 문장들을 묶은 것 블록(block)이라고도 함 단일문(simple statement) 대신 사용 가능 if (score >= 60)          {       printf("합격입니다.\n");       printf("장학금도 받을 수 있습니다.\n");   } 조건식이 참이면 2개의 문장이 모두 실행된다.

예제 #include <stdio.h> int main(void) { int number; printf("정수를 입력하시오: "); scanf("%d", &number); if (number > 0) printf("양수입니다.\n"); printf("입력된 값은 %d입니다.\n", number); return 0; } 정수를 입력하시오: 25 양수입니다. 입력된 값은 25입니다.

예제 // if 문을 사용하여 절댓값을 구하는 프로그램 #include <stdio.h> int main(void) {         int number;         printf("정수를 입력하시오: ");         scanf("%d", &number);         if (number < 0)                 number = -number;                  printf("절댓값은 %d입니다.\n", number);         return 0; } 만약 사용자가 -5를 입력하였다면 -5 < 0이므로 해당 조건문 실행 정수를 입력하시오: -5 절댓값은 5입니다.

if-else 문 if (조건식)        문장1; else         문장2; 조건식이 참이면 실행된다. 조건식이 거짓이면 실행된다.

if-else 문 if (score >= 60) printf("합격입니다.\n"); else {       printf("합격입니다.\n");       printf("장학금도 받을 수 있습니다.\n"); } else       printf("불합격입니다.\n");       printf("공부하세요.\n"); score가 60이상이면 실행 score가 60미만이면 실행

복잡한 조건식도 가능 학점 결정 코드 if (score >= 80 && score < 90) grade = 'B'; 공백 문자들의 개수를 세는 코드 if (ch == ' ' || ch == '\n' || ch == '\t') white_space++;

예제 #1 // if-else 문을 이용하여 홀수와 짝수를 구분한다. #include <stdio.h> int main(void) {         int number;         printf("정수를 입력하시오: ");         scanf("%d", &number);         if (number % 2 == 0)                 printf("입력된 정수는 짝수입니다.\n");         else                 printf("입력된 정수는 홀수입니다.\n");         return 0; } 2로 나누어서 나머지가 0이면 짝수이다. 정수를 입력하시오: 입력된 정수는 짝수입니다. 50

예제 #2 // 나눗셈을 하기 전에 분모가 0인지를 if-else 문을 이용하여 검사 #include <stdio.h> int main(void) {         int n1, n2, n3;         printf("정수를 입력하시오: ");         scanf("%d", &n1);         scanf("%d", &n2);         if (n2 == 0) { // 분모가 0인지 검사                 printf("0으로 나눌 수는 없습니다.\n");         } else {                 n3 = n1 / n2;                 printf("결과는 %d입니다.\n", n3);         }        return 0; } 정수를 입력하시오: 결과는 1입니다. 5 4

예제 #3 // 윤년 판단 프로그램 #include <stdio.h> int main(void) {         int year;                  printf("연도를 입력하시오: ");         scanf("%d", &year);         if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)                 printf("%d년은 윤년입니다.\n", year);         else                 printf("%d년은 윤년이 아닙니다.\n", year);         return 0; } 연도를 입력하시오: 2015년은 윤년이 아닙니다. 2015

중첩 if if 문에 다시 if 문이 포함된 경우 if (조건식1 )       if (조건식2 )            문장;

if 문 안의 문장 자리에 if-else 문이 들어간 경우 if (score >= 80) if (score >= 90) printf("당신의 학점은 A입니다.\n"); if 문 안의 문장 자리에 if문이 들어간 경우 if (score >= 80) if (score >= 90) printf("당신의 학점은 A입니다.\n"); else printf("당신의 학점은 B입니다.\n"); if 문 안의 문장 자리에 if-else 문이 들어간 경우

만약 다른 if 문과 else 절을 매치시키려면 중괄호를 사용하여 블록으로 묶는다. else 절은 가장 가까운 if 문에 매치된다. Dangling else problem if (score > 80) if (score >= 90) printf("당신의 학점은 A입니다\n"); else printf("당신의 학점은 B입니다\n") 만약 다른 if 문과 else 절을 매치시키려면 중괄호를 사용하여 블록으로 묶는다. if (score >= 80) {    if (score >= 90)        printf("당신의 학점은 A입니다.\n"); } else     printf("당신의 학점은 A나 B가 아닙니다.\n");

중첩 if if (score > 80) { if (score > 90)        printf("당신의 학점은 A입니다.\n");    else         printf("당신의 학점은 B입니다.\n"); } else {   if (score > 70)        printf("당신의 학점은 C입니다.\n");        printf("당신의 학점은 D 또는 F입니다.\n"); } if-else 안에 다른 if-else 문이 포함될 수 있다.

정수 3개중의 최솟값 찾기 #include <stdio.h> int main(void) { int n1, n2, n3, min; printf("정수 3개를 입력하시오:"); scanf("%d %d %d", &n1, &n2, &n3); if (n1 < n2) if (n1 < n3) min = n1; else min = n3; if (n2 < n3) min = n2; printf("제일 작은 수는 %d입니다.\n", min); return 0; } 10 < 20 이고 10 < 30 이므로 실행 정수 3개를 입력하시오: 10 20 30 제일 작은 수는 10입니다.

연속적인 if if (조건식1 ) 문장1; else if (조건식2 ) 문장2; else if (조건식3 ) 문장3; else       문장1; else if (조건식2 )       문장2; else if (조건식3 )       문장3; else       문장4;

학점 결정 예제 #include <stdio.h> int main(void) { int score;                  printf("성적을 입력하시오: ");         scanf("%d", &score);         if (score >= 90)                 printf("합격: 학점A\n");         else if (score >= 80)                 printf("합격: 학점B\n");         else if (score >= 70)                 printf("합격: 학점C\n");         else if (score >= 60)                 printf("합격: 학점D\n");         else                 printf("불합격: 학점F\n");        return 0; } 성적을 입력하시오: 88 합격: 학점B

문자 분류 예제 // 문자들을 분류하는 프로그램 #include <stdio.h> int main(void) {         char ch;                  printf("문자를 입력하시오: ");         scanf("%c", &ch);   if ('A' <= ch && ch <= 'Z’)                        printf("%c는 대문자입니다.\n", ch);         else if ('a' <= ch && ch <= 'z’)                   printf("%c는 소문자입니다.\n", ch);         else if ('0' <= ch && ch <= '9’)                   printf("%c는 숫자입니다.\n", ch);         else                 printf("%c는 기타문자입니다.\n", ch);   return 0; } 문자를 입력하시오: c는 소문자입니다. c

계산기 예제 #include <stdio.h> int main(void) { char op; int x, y, result; printf("수식을 입력하시오.\n"); printf("(예: 2 + 5)\n"); printf(">> "); scanf("%d %c %d", &x, &op, &y); if (op == '+') result = x + y; else if (op == '-') result = x - y; else if (op == '*') result = x * y; else if (op == '/') result = x / y; else if (op == '%') result = x % y; else { printf("지원되지 않는 연산자입니다.\n"); return 1; } printf("%d %c %d = %d\n", x, op, y, result); return 0; 수식을 입력하시오. (예: 2 + 5) >> 2 + 5 2 + 5 = 7

switch 문 여러 가지 경우 중에서 하나를 선택하는 데 사용 break는 switch 문을 탈출하는 데 사용합니다. { case c1:       문장1;       break; case c2:       문장2;   ... case cn:       문장n; default:       문장d; } 조건식의 값이 c2이면 실행된다. 일치하는 값이 없으면 실행된다. break는 switch 문을 탈출하는 데 사용합니다.

예제 int main(void) { int number; printf("정수를 입력하시오: ");         scanf("%d", &number);         switch (number) {                 case 0:                         printf("없음\n");                         break ;                 case 1:                         printf("하나\n");                 case 2:                         printf("둘\n");                 default:                         printf("많음\n");                         break;         }  return 0; } 정수를 입력하시오: 하나 1

break가 생략된 경우 switch (number) { // number = 1 case 0: printf("없음\n");           default:                 printf("많음\n");                 break; } break를 만날 때까지 계속 문장을 실행합니다.

의도적인 break 생략 여러 경우를 하나로 묶어서 처리하기 위하여 이러한 기법을 사용 switch (number) {                 case 0:                         printf("없음\n");                         break;                 case 1:                         printf("하나\n");                 case 2:                 case 3:                         printf("두서너개\n");                 default:                         printf("많음\n");  } 여러 경우를 하나로 묶어서 처리하기 위하여 이러한 기법을 사용

default 어떤 case에도 매치되지 않는 경우에 수행 switch (number) { // number = 5                 printf("없음\n");                 break ;           case 1:                 printf("하나\n");           case 2:                 printf("둘\n");           default:                 printf("많음\n");                 break; }

switch 문에서 주의할 점 case label에는 정수형 상수 수식만 허용됨 case label들의 값은 서로 달라야 함 switch (number) { case x: // 변수는 사용할 수 없다. printf("x와 일치합니다. "); break; case (x+2): // 변수가 들어간 수식은 사용할 수 없다. printf("수식과 일치합니다. "); case 0.001: // 실수는 사용할 수 없다. printf("실수"); case "001": // 문자열은 사용할 수 없다. printf("문자열"); }

switch 문과 if-else 문 switch는 if-else보다 실행 속도가 빠르지만 사용에 제약이 있음 switch (number)  {      case 0:          printf("없음\n");            break;     case 1:            printf("하나\n");      case 2:            printf(“둘\n");      default:            printf("많음\n"); } if (number == 0)       printf("없음\n"); else if (number == 1)       printf("하나\n"); else if (number == 2)       printf("둘\n"); else       printf("많음\n");

switch 예제 // 달의 일수를 계산하는 프로그램 #include <stdio.h> int main(void) {         int month, days;                  printf("달을 입력하시오: ");         scanf("%d", &month);         switch (month) {                 case 2:                         days = 28;                         break;                 case 4: case 6: case 9: case 11:                         days = 30;                 default:                         days = 31;         }         printf("%d월의 일수는 %d입니다.\n", month, days);         return 0; } 달을 입력하시오: 12 12월의 일수는 31입니다.

switch 예제 // 학점 부여 프로그램 #include <stdio.h> int main(void) { int score; char grade; printf("성적을 입력하시오(0~100): "); scanf("%d", &score); switch (score / 10) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; default: grade = 'F'; break; } printf("성적 = %d, 학점 = %c\n", score, grade); return 0; 성적을 입력하시오(0~100): 85 성적 = 85, 학점 = B

계산기 예제 #include <stdio.h> int main(void) { char op; int x, y, result; printf("수식을 입력하시오.\n"); printf("(예: 2 + 5)\n"); printf(">> "); scanf("%d %c %d", &x, &op, &y); switch (op) { case '+': result = x + y; break; case '-': result = x – y; break; case '*': result = x * y; break; case '/': result = x / y; break; case '%': result = x % y; break; default: printf("지원되지 않는 연산자입니다.\n"); return 1; } printf("%d %c %d = %d\n", x, op, y, result); return 0; 수식을 입력하시오. (예: 2 + 5) >> 2 + 5 2 + 5 = 7

goto문 무조건 어떤 위치로 점프 특별한 경우가 아니면 사용하지 않는 것이 좋음