개정판 누구나 즐기는 C언어 콘서트 제5장 조건문 출처: pixabay.

Slides:



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

2014 가을학기 계산 입문 연습 #4 지도교수 : 박성우 조교 : 이다훈. Python 을 설치합시다.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
누구나 즐기는 C언어 콘서트 제5장 조건문.
Power C++ 제3장 선택과 반복.
제6장 조건문.
Power Java 제6장 조건과 반복.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
6장 명령문.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
Chapter 7. 조건문.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
개정판 누구나 즐기는 C언어 콘서트 제8장 함수 출처: pixabay.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
C언어 콘서트 제6장 반복문.
어서와 Java는 처음이지! 제3장선택과 반복.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
2주차: 변수, 수식, Control Flow.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
6장. printf와 scanf 함수에 대한 고찰
2007 1학기 11 프로젝트 기초 실습.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
MATLAB
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
두근두근 파이썬 수업 5장 조건을 따져봅시다..
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
제어문 & 반복문 C스터디 2주차.
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Chapter 08. 함수.
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
2nd day Indexing and Slicing
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
제 15 강 문자와 코드 shcho.pe.kr.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
SPL3D Printer If 조건문.
Flow Diagram IV While.
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
제 22 강 논리식 및 논리 값 shcho.pe.kr.
실습 UBLAB.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
13. 포인터와 배열! 함께 이해하기.
Presentation transcript:

개정판 누구나 즐기는 C언어 콘서트 제5장 조건문 출처: pixabay

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

이번 장에서 만들 프로그램

3가지의 기본 제어 구조

자동차가 주행하는 도로와 유사

왜 조건문이 필요한가? 상황에 따라서 결정을 다르게 해야 함.

if-else 문

예제 시험점수가 60점 이상이면 합격이고 60점 미만이면 불합격을 화면 에 출력하고자 한다면 if ( score >= 60 ) { printf("합격입니다.\n"); } else { printf("불합격입니다.\n");

생략할 수 있는 것 만약 조건에 따라 실행되는 문장이 하나이면 중괄호는 생략할 수 있 다. else 절은 생략될 수 있다. if ( score >= 60 ) printf("합격입니다.\n"); else printf("불합격입니다.\n"); if ( score >= 60 ) printf("합격입니다.\n");

예제 #1 사용자로부터 입력받은 온도를 if-else 문을 이용하여 검사한 후에 영상이면 “영상의 날씨입니다”를 출력하고 그렇지 않으면 “영하의 날씨입니다”를 출력한다.

예제 #1 #include <stdio.h> int main(void) { int temperature; printf("온도를 입력하시오:"); scanf("%d", &temperature); if (temperature > 0) // temperature가 0보다 크면 아래 문장을 실행 printf("영상의 날씨입니다.\n"); else // temperature가 0 이하이면 아래 문장을 실행 printf("영하의 날씨입니다.\n"); printf("현재 온도는 %d도입니다.\n", temperature); // 항상 실행 return 0; }

예제 #2 사용자로부터 입력받은 정수가 홀수인지 짝수인지를 말해주는 프로 그램을 작성하여 보자.

예제 #2 #include <stdio.h> int main(void) { int number; printf("정수를 입력하시오:"); scanf("%d", &number); if (number % 2 == 0) // number를 2로 나눈 나머지가 0이면 짝수이다. printf("입력된 정수는 짝수입니다.\n"); else // 그렇지 않으면 홀수이다. printf("입력된 정수는 홀수입니다.\n"); return 0; }

예제 #3 예를 들어서 시험 성적이 60점 이상이면 합격과 동시에 장학금도 받을 수 있다고 출력하려면 어떻게 해야 할까?

예제 #3 #include <stdio.h> int main(void) { int score; printf("성적을 입력하시오:"); scanf("%d", &score); if (score >= 60) // 성적이 60점 이상이면 printf("합격입니다.\n"); printf("장학금도 받을 수 있습니다.\n"); } else // 그렇지 않으면 printf("불합격입니다.\n"); printf("다시 도전하세요.\n"); return 0;

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

조건 연산자 조건 연산자는 ? 기호와 : 기호로 이루어진다. ? 앞에 있는 것이 조 건이다. 조건이 참이면 값1이 반환된다. 조건이 거짓이면 값2가 반 환된다. big = (x > y) ? x : y;

예제 #include <stdio.h> int main(void) { int x, y; printf("첫번째 수="); scanf("%d", &x); printf("두번째 수="); scanf("%d", &y); printf("큰수=%d \n", (x > y) ? x : y); printf("작은수=%d \n", (x < y) ? x : y); }

논리 연산자

AND 연산자 나이가 30살 이하이고 토익 성적이 700점 이상이라는 조건을 걸었 다고 가정하자.

OR 연산자 나이가 30살 이하이거나 토익 성적이 700점 이상이면 된다고 하자.

NOT 연산자 NOT 연산자는 피연산자의 값이 참이면 연산의 결과값을 거짓으로 만들고, 피연산자의 값이 거짓이면 연산의 결과값을 참으로 만든다.

예제 #include <stdio.h> int main(void) { int number; printf("정수를 입력하시오: "); scanf("%d", &number); if ( number >= 0 && number <= 100) printf("입력한 정수가 0에서 100 사이에 있습니다. \n"); else printf("입력한 정수가 0에서 100 사이가 아닙니다. \n"); return 0; }

단축 연산 if( (2 > 3) && (++x < 5) ) { ... }

Lab: 윤년 판단 윤년인지 아닌지를 판단하는 프로그램을 if 문을 사용하여 작성하여 보자.

Sol: 윤년 판단 #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; }

Lab: 동전 던지기 게임 프로그램을 실행할 때마다 실제 동전을 던지는 것처럼 앞면과 뒷면 이 랜덤하게 나와야 한다. #include <stdlib.h> int main(void) { int coin; coin = rand(); return 0; }

Sol: 동전 던지기 게임 #include <stdio.h> #include <stdlib.h> int main(void) { printf("동전 던지기 게임을 시작합니다.\n"); int coin = rand() % 2; if (coin == 0) printf("앞면입니다.\n"); else printf("뒷면입니다.\n"); return 0; }

중간 점검 1. 변수 n의 값이 100보다 크거나 같으면 “large", 100보다 작으 면 ”small"을 출력하는 if-else 문을 작성하라.

연속적인 if

학점 부여 프로그램

Sol: 동전 던지기 게임 // 성적을 받아서 학점을 결정하는 프로그램 #include <stdio.h> int main(void) { int score; char grade; printf("성적을 입력하시오: "); scanf("%d", &score); if (score >= 90) grade = 'A'; else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else grade = 'F'; printf("학점 %c \n", grade); return 0; }

계산기 프로그램

Sol: 동전 던지기 게임 // 간단한 산술 계산기 프로그램 #include <stdio.h> int main(void) { char op; int x, y; printf("수식을 입력하시오: "); scanf("%d %c %d", &x, &op, &y); if (op == '+') printf("%d \n", x + y); else if (op == '-') printf("%d \n", x - y); else if (op == '*') printf("%d \n", x * y); else if (op == '/') printf("%d \n", x / y); else printf("지원되지 않는 연산자입니다. \n"); return 0; }

Lab: 세개의 정수 중에서 큰 수 찾기 사용자로부터 받은 3개의 정수 중에서 가장 큰 수를 찾는 프로그램 을 작성해보자.

Sol: 세개의 정수 중에서 큰 수 찾기 #include <stdio.h> int main(void) { int a, b, c, largest; printf("3개의 정수를 입력하시오: "); scanf("%d %d %d", &a, &b, &c); if (a > b && a > c) // a가 b보다 크고 a가 c보다 크면 largest = a; else if (b > a && b > c) // b가 a보다 크고 b가 c보다 크면 largest = b; else // 그렇지 않으면 c가 최대값인 것은 자명하다. largest = c; printf("가장 큰 정수는 %d이다. \n", largest); return 0; }

중간 점검 n의 값이 각각 -1, 0, 5인 경우에 다음의 코드에 의하여 생성되는 출 력은 무엇인가? 2. 컵의 사이즈를 받아서 100ml미만은 small, 100ml이상 200ml미만은 medium, 200ml 이상은 large라고 출력하는 연속적인 if-else 문을 작성하시오. if( n == 0 ) printf("A"); else if( n > 3 ) printf("B"); else printf("C");

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

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; } } 정수를 입력하시오: 1 하나

사용자가 1을 입력하는 경우 1 switch(number) { case 0: printf("없음\n"); break ;                 default:                         printf("많음\n");                         break;         } }

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

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

default 문 5 어떤 case문과도 일치되지 않는 경우에 선택 switch(number) { case 0:                         printf("없음\n");                         break ;                 case 1:                         printf("하나\n");                 case 2:                         printf("둘\n");                 default:                         printf("많음\n");                         break;         } } 어떤 case문과도 일치되지 않는 경우에 선택

switch 문과 if-else 문 int main(void) { int number; scanf("%d", &number);   if( number == 0 )       printf("없음\n");   else if( number == 1 )       printf("하나\n");   else if( number == 2 )       printf("둘\n");   else        printf("많음\n"); } switch(number)         {                 case 0:                         printf("없음\n");                         break;                 case 1:                         printf("하나\n");                 case 2:                         printf(“둘\n");                 default:                         printf("많음\n");         }

달이 주어지면 그 달의 일수 를 출력하는 프로그램

Sol: 동전 던지기 게임 // 달의 일수를 계산하는 프로그램 #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; Sol: 동전 던지기 게임

Lab: 원이나 사각형 그리기 사용자가 “r”을 입력하면 사각형이 그려지고 “c”을 입력하면 원이 그려지는 프로그램을 작성하여 보자.

윈도우에서 그림 그리기 콘솔 윈도우의 크기를 변경하면 그림이 지워집니다! 주의하세요. #include <windows.h> #include <stdio.h> int main(void) { HDC hdc = GetWindowDC(GetForegroundWindow()); Rectangle(hdc, 100, 100, 200, 200); // 사각형을 그린다. Ellispe(hdc, 100, 100, 200, 200); // 원을 그린다. } 콘솔 윈도우의 크기를 변경하면 그림이 지워집니다! 주의하세요.

Sol: 원이나 사각형 그리기 #include <windows.h> #include <stdio.h> int main(void) { HDC hdc = GetWindowDC(GetForegroundWindow()); char command; printf("명령어를 입력하시오(r 또는 c): "); command = getchar(); if (command == 'r') { Rectangle(hdc, 100, 100, 200, 200); } else if (command == 'c') { Ellipse(hdc, 100, 100, 200, 200); else { printf("잘못된 명령어입니다. \n"); return 0;

Lab: 가위, 바위, 보 게임 컴퓨터와 사람이 대결하는 가위, 바위, 보 게임을 작성해보자.

Sol: 원이나 사각형 그리기 #include <stdio.h> #include <stdlib.h> int main(void) { int user, computer; printf("가위, 바위, 보 게임에 오신 것을 환영합니다. \n"); printf("하나를 선택하세요(가위-0, 바위-1, 보-2): "); scanf("%d", &user); // 사용자로부터 정수를 입력받는다. computer = rand() % 3; // 컴퓨터가 난수를 발생하여서 정수를 선택한다. printf("사용자=%d \n", user); printf("컴퓨터=%d \n", computer); if ((user + 1) % 3 == computer) printf("컴퓨터 승리 \n"); else if (computer == user) printf("비겼음 \n"); else printf("사용자 승리 \n"); return 0; } Sol: 원이나 사각형 그리기

Q & A