Microsoft PowerPoint - 5장 조건문 pptx

Similar documents
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

쉽게 풀어쓴 C 프로그래밍

untitled

Microsoft PowerPoint - chap-06.pptx

쉽게 풀어쓴 C 프로그래밍

Infinity(∞) Strategy

Microsoft PowerPoint - chap05-제어문.pptx

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Chapter_06

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

중간고사

OCW_C언어 기초

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

PowerPoint 프레젠테이션

Microsoft PowerPoint - gnu-w10-c-chap11

1.1.1 컴퓨터의 구성 p.19

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

윈도우즈프로그래밍(1)

슬라이드 1

Java ...

C 언어 프로그래밊 과제 풀이

Microsoft PowerPoint - chap04-연산자.pptx

untitled

untitled

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - chap-07.pptx

C프로-3장c03逞풚

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap-05.pptx

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

Microsoft PowerPoint - Lesson6.pptx

Microsoft PowerPoint - Java7.pptx

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - 7장 배열 pptx

Microsoft PowerPoint - Chapter_05.pptx

Microsoft PowerPoint - ch03 - 조건문과 반복문 pm0215


Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - gnu-w10-c-chap12

Microsoft PowerPoint - Lesson2.pptx

C 프로그램의 기본

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

C 언어와 프로그래밍 개요

4장.문장

Microsoft PowerPoint - chap06-1Array.ppt

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

K&R2 Reference Manual 번역본

C 프로그래밊 개요

슬라이드 1

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint Presentation

슬라이드 1

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

PowerPoint Presentation

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

1장. 유닉스 시스템 프로그래밍 개요

슬라이드 1

untitled

슬라이드 1

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

쉽게 풀어쓴 C 프로그래밍

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

TEST BANK & SOLUTION

OCW_C언어 기초

Microsoft PowerPoint - 2장 변수와 자료형 pptx

Microsoft PowerPoint - ch01.ppt

Visual Basic 반복문

Microsoft PowerPoint - chap12-고급기능.pptx

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

OCW_C언어 기초

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

ch08

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

11장 포인터

<4D F736F F F696E74202D20C1A635C0E520BCF6BDC4B0FABFACBBEAC0DA>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

Transcription:

C 프로그래밍및실습 5. 조건문 세종대학교 목차 1) 조건문 2) if 문 3) if~ 문 4) 다중 if 문 5) switch 문 2

1) 조건문 제어문 C 언어는순차처리언어로, 특별한지정이없으면, 소스코드첫줄부터차례대로처리 그러나문제해결위해처리흐름제어필요 제어문 C언어에서는조건문, 반복문과같은제어문을제공한다. 제어문종류 분류조건문반복문기타 종류 if 문, if 문, switch 문 for 문, while 문, do while 문 break 문, continue 문, goto 문, return 문 3 1) 조건문 조건문 조건에따라실행되는코드가달라지게할때사용하는제어문 if 문, if- 문, switch 문 조건문이필요한예 어떤정수의절대값구하기문제에서 양수이면그냥출력하고, 음수이면 1 을곱하여출력해야한다. 4

2) if 문 if 문 조건식이참이면중괄호로둘러쌓인블록안의문장들이실행된다. 구문 if( 조건식 ) { 조건식이참일때만실행되는문장들 예 ) x의값이 0 보다큰경우에만 " 양수입니다 " 출력 if( x > 0 ) { printf(" 양수입니다.\n"); 5 2) if 문 다음각문장에해당하는 if 문을작성하시오 ( 각문제는독립 ) 1. 변수 x가 0보다작거나같으면, x의값 1 증가 2. 변수 a가 -10보다크고 10보다작으면, x에 0 대입 3. 변수 num이 0이면, "0입니다" 를화면에출력 6

2) if 문 ( 실습 1) 숫자를입력받아서, 2 의배수, 3 의배수, 5 의배수인지조사하는프로그램을작성하시오. ( 힌트 : if 문 3 개사용 ) 입력 출력 60 2 의배수 3 의배수 5 의배수 ( 실습2) 두숫자를입력받아서, 어느수가큰지같은지를출력하는프로그램을작성하시오. (if-가아닌 if 문 3 개를사용해서해결하시오 ) 입력 출력 2 3 큰수는 3 4 3 큰수는 4 21 21 같다 7 2) if 문 ( 실습 3) 소문자가입력되면 소문자 를출력하고 대문자 를입력하면 대문자 " 라고출력하는코드를작성하시오. 1) 아래의아스키문자표를이용하여해결하시오. 2) 아스키문자표를이용하지않고해결해보시오. 영어문자 십진수 A 65 B 66 Z 90 a 97 b 98 z 122 A a 입력 출력 대문자 소문자 8

2) if 문 if 문의조건식이참일경우실행할내용이하나의문장이라면중괄호 { 는생략가능하다. #include <stdio.h> int main(void){ int x = 0; printf(" 정수를입력하세요 : "); scanf("%d", &x); if(x > 0) printf(" 양수입니다 \n"); return 0; if(x > 0) { printf(" 양수입니다 \n"); 정수를입력하세요 : 20 양수입니다정수를입력하세요 : 20 if(x > 0) printf(" 양수입니다 \n"); 9 2) if 문 들여쓰기 x가 -1인경우아래코드의출력은? ( 들여쓰기 ) if(x > 0) printf(" 양수입니다 \n"); printf("0보다큽니다 \n"); 첫번째 printf 만 if 문에의해영향을받음 0 보다큽니다 들여쓰기는사람의가독성을위한것일뿐, 구문에는전혀영향을미치지못함 일반적으로 if 문의경우, 조건에의해영향을받는문장들을쉽게구별하기위해 if 보다더들여쓴다. ( 보통 tab 키사용 ) 지금까지본 main( ) 함수의문장들도마찬가지이유로들여쓰기를했음 10

2) if 문 if 문사용시주의사항 if의조건식뒤에바로세미콜론 ; 은쓰지않는다. 세미콜론만써도아무런일도하지않는하나의문장으로인식 x 가 -1 인경우아래코드의출력은? if(x > 0) ; printf(" 양수입니다 \n"); if(x > 0) ; // 빈문장 printf(" 양수입니다 \n"); 양수입니다 11 2) if 문 if 문사용시자주하는실수 조건식에서비교연산자 == 가아닌대입연산자 = 를쓰는경우 int x = 1; if( x = 10 ) printf("x는 %d입니다\n",x); 위코드는컴파일오류가발생하지않는다 문법적오류없음 실행결과는? x 는 10 입니다 왜그럴까? 위코드의의미는 x 에 10 을대입하고, x 의값을조건식으로사용 (C 언어에서 0 이아니면모두참 ) if 문의조건식을 x = 1 또는 x = 0 으로바꿔서실행해보자. 12

2) if 문 실습예제 정수한개를입력받고절대값을출력하는프로그램을작성하시오. 어떻게프로그램을만들지생각해보자. 1 사용자정수입력 2정수검사 3 절대값을출력하기위해무엇을할것인가? 실행예시 1 실행예시 2 정수를입력하세요 : 20 절대값 = 20 정수를입력하세요 : 20 절대값 = 20 13 2) if 문 답예시 아래코드외에다른방식으로작성하는것도가능 #include <stdio.h> int main(void){ int x=0; printf(" 정수를입력하세요 : "); scanf("%d", &x); if(x>=0) printf(" 절대값 =%d\n", x); if(x<0) printf(" 절대값 =%d\n", x); return 0; 14

3) if- 문 if- 문 if의조건식이참이면조건식바로다음의블록이실행되고, 조건식이거짓이면 문다음의블록이실행된다. 구문 if( 조건식 ) { 조건식이참일때실행되는문장들 { 조건식이거짓일때실행되는문장들 앞예제의두 if 문은다음과같이 if- 문으로작성가능 if(x >= 0) printf(" 절대값 = %d\n", x); printf(" 절대값 = %d\n", x); 15 3) if- 문 ( 실습 4) 두수를입력받아서나누는수가 0 이면, 0 이라고출력하고, 그렇지않으면몫과나머지를출력하는프로그램을작성하시오. 입력 출력 8 0 나누는수 0 8 3 몫 =2 나머지 =2 16

4) 다중 if 문 다중 if 문 or 중첩된 if문 if 문안의문장이또다른 if 문인경우 (if- 문포함 ) 예 ) if(x >= 0) if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 양의홀수 \n"); x 가 4 인경우 양의짝수 x 가 3 인경우 양의홀수 x 가 -1 인경우 17 4) 다중 if 문 는위쪽에서짝이없는가장가까운 if와짝이된다. if(x >= 0) if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 양의홀수 \n"); printf(" 음수 \n"); 를멀리있는 if와짝을지으려면? 중괄호 { 를사용하여 if문의적용범위를강제로바꿔주면됨 if(x >= 0) { if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 음수 \n"); 18

4) 다중 if 문 정수를 4 개로분류하는다음코드를 의짝에맞추어적절히들여쓰기하면? if(x >= 0) if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 양의홀수 \n"); if(x%2 == 0) printf(" 음의짝수 \n"); printf(" 음의홀수 \n"); if(x >= 0) if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 양의홀수 \n"); if(x%2 == 0) printf(" 음의짝수 \n"); printf(" 음의홀수 \n"); 19 4) 다중 if 문 ( 실습 5) 초등 1, 2학년을위한퀴즈프로그램을작성하시오. 다음페이지에있는순서도를참고하시오. 몇학년입니까 (1, 2)? 1 세종대왕이만드신배는거북선이다. 맞으면 1, 틀리면 0: 1 틀렸습니다 몇학년입니까 (1, 2)? 2 35 * 70 = 123 틀렸습니다 20

4) 다중 if 문 ( 실습 5) 초등 1, 2 학년을위한퀴즈프로그램 21 4) 다중 if 문 다중선택을위한다중 if문 다음과같이점수에따라학점을출력하는프로그램을다중 if문을사용하여작성할수있다. ( 다음슬라이드참조 ) 1 이번학기점수를입력하라고함 ( 점수는 0~100점사이 ) 2 만약점수가 90점이상이면 A학점을출력함 3 만약점수가 80점이상 ~90점미만이면 B학점을출력함 4 만약점수가 70점이상 ~80점미만이면 C학점을출력함 5 만약점수가 60점이상 ~70점미만이면 D학점을출력함 6 만약점수가 60점미만이면 F학점을출력함 22

4) 다중 if 문 다중선택을위한다중 if문 앞서배운대로, 각 if 와 짝을맞추어들여쓰기한버전 #include <stdio.h> 점수를입력하세요 : 66 int main(void){ D int score=0; printf(" 점수를입력하세요 : "); scanf("%d", &score); if(score>=90) printf("a\n"); if(score>=80) printf("b\n"); if(score>=70) printf("c\n"); if(score>=60) printf("d\n"); printf("f\n"); return 0; 23 4) 다중 if 문 다중선택을위한다중 if문 하지만, 이런다중선택을위한다중 if문이여러개겹치는경우, 들여쓰기를하지않는것이논리적으로더명확 #include <stdio.h> int main(void){ int score=0; printf(" 점수를입력하세요 : "); scanf("%d", &score); if(score>=90) printf("a\n"); if(score>=80) printf("b\n"); if(score>=70) printf("c\n"); if(score>=60) printf("d\n"); printf("f\n"); return 0; 24

4) 다중 if 문 다중선택을위한다중 if문의일반적인구문 if ~ 구문을들여쓰지않고연속해서사용한다. if( 조건식 A) { 조건식 A 가참일때실행되는문장들 if( 조건식 B) { 조건식 A 는거짓이고, B 는참일때실행되는문장들 if( 조건식 C) { 조건식 A, B 는모두거짓이고, C 는참일때실행되는문장들 { 조건식 A, B, C 모두거짓일때실행되는문장들 25 4) 다중 if 문 ( 실습 6) 야구팀첫영문자를입력하면팀이름이출력되는프로그램을작성하시오. 입력되는영문자는대문자일수도있고소문자일수도있다. 입력 출력 l L Lions Lions 입력 L 혹은 l E 혹은 e 출력 Lions Eagles E Eagles B 혹은 b 기타 Bears none b Bears A none 26

4) 다중 if 문 실습예제 다중 if문을이용하여다음프로그램을작성하시오. 1 사용자로부터문자하나를입력받는다. 2 문자가대문자일경우 대문자 " 를출력한다. 3 문자가소문자일경우 소문자 " 를출력한다. 4 문자가숫자일경우 숫자 " 를출력한다. 5 그밖의경우 기타 " 를출력한다. 27 4) 다중 if 문 대문자, 소문자, 숫자, 기타문자구분하기 #include <stdio.h> int main(void){ 문자를입력하세요 : * 기타 char ch; printf(" 문자를입력하세요 : "); scanf("%c", &ch); if(ch>='a' && ch<='z') printf(" 대문자 \n"); if(ch>='a' && ch<='z') printf(" 소문자 \n"); if(ch>='0' && ch<='9') printf(" 숫자 \n"); printf(" 기타 \n"); return 0; 28

4) 다중 if 문 참고 ) 다중 if문의들여쓰기는논리적인흐름에맞추어적절히선택 예 ) 정수를 4가지로분류하는프로그램 (19쪽코드 ) 어느쪽이논리적으로이해하기쉽고명확한가? if(x >= 0) if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 양의홀수 \n"); if(x%2 == 0) printf(" 음의짝수 \n"); printf(" 음의홀수 \n"); if(x >= 0) if(x%2 == 0) printf(" 양의짝수 \n"); printf(" 양의홀수 \n"); if(x%2 == 0) printf(" 음의짝수 \n"); printf(" 음의홀수 \n"); 29 5) switch 문 switch 문 if- 문과마찬가지로조건에따라프로그램의흐름을분기하는목적으로사용 다중 if문보다간결 대신, 사용영역이 if-에비해제한적 구문 switch( 수식 ) { case 상수값 1: 문장들 1 case 상수값 2: 문장들 2 default: 문장들 3 30

5) switch 문 if~ 문을 switch 문으로바꿔보자 if(x==1) printf("january\n"); if(x==2) printf("february\n"); if(x==3) printf("march\n"); printf("none\n"); switch(x){ case 1: printf("january\n"); case 2: printf("february\n"); case 3: printf("march\n"); default: printf("none\n"); 31 5) switch 문 switch 문동작방식 switch문수식의결과값과 case의상수값을차례로비교하여일치하는 case의문장들부터차례로수행 일치하는 case 이전의문장들은무시됨 case 비교시 default: 의의미는? 그외의경우 해당 case도없고, default: 도없으면? 아무문장도실행하지않고, switch 문끝으로이동 x 가 3 인경우제어흐름 break 문을만나면 switch-case 문을빠져나옴 switch(x){ case 1: printf("january\n"); case 2: printf("february\n"); case 3: printf("march\n"); default: printf("none\n"); 여기서부터수행 32

5) switch 문 break 문 switch 문을중간에벗어나는역할 switch 문수행도중 break문을만나면 switch문끝으로이동 오른쪽코드와같이 break 문을제거하면? 숫자를하나입력하세요 :2 February March None int main(void){ int x=0; printf(" 숫자를하나입력하세요 :"); scanf("%d", &x); switch(x){ case 1: printf("january\n"); case 2: printf("february\n"); case 3: printf("march\n"); default: printf("none\n"); return 0; 33 5) switch 문 case 에정수 1, 2, 3이순서대로나와야하나? NO!! 순서상관없고, 문자도가능하다 #include <stdio.h> int main(void){ char ch; printf(" 학점을입력하세요. "); 학점을입력하세요. A 잘했습니다. scanf("%c", &ch); switch(ch){ case 'C': printf(" 괜찮습니다.\n"); case 'B': printf(" 좋습니다.\n"); case 'A': printf(" 잘했습니다.\n"); default: printf(" 노력합시다.\n"); return 0; 34

5) switch 문 ( 실습 7) 학점출력문제를 switch 문을사용하여구현하시오. Hint: score/10=91/10=9, 정수 / 정수 = 정수 #include <stdio.h> int main(void){ int score=0; printf(" 점수를입력하세요 : "); scanf("%d", &score); if(score>=90) printf("a\n"); if(score>=80) printf("b\n"); if(score>=70) printf("c\n"); if(score>=60) printf("d\n"); printf("f\n"); return 0; 35 5) switch 문 ( 실습 8) 요일출력문제를 switch 문을사용하여구현하시오. Hint: 나머지연산자 % 가필요함, 8 % 3 = 2 날짜를입력하세요 : 28 월요일 36

5) switch 문 ( 실습 9) 주민등록번호로정보구하기 뒷자리첫번째번호 1 혹은 3 혹은 9 남성 0 혹은 2 혹은 4 여성 5, 6, 7, 8 외국인등록번호 주민번호뒷자리첫번째번호입력하세요. 1 남성주민번호뒷자리첫번째번호입력하세요. 5 외국인 37 5) switch 문 switch 문사용시주의점 case 바로다음에는정수형상수 ( 문자포함 ) 만가능 case 1 : // 가능 case A : // 가능 (C언어에서문자도정수이다.) case 2.0 : (X) // 실수안됨. case 3+4 : (X) // 수식안됨. case x<3 : (X) // 수식안됨. case A : (X) // 변수안됨. 주의!! A는변수, 'A' 는문자 case "A" : (X) // 문자열안됨. 주의!! 'A' 는문자, "A" 는문자열 38

5) switch 문 소수합성수를구분하는프로그램을작성해보자. 여러 case 문에대해동일한결과를출력하고자할때는, break 문을빼고사용한다. #include <stdio.h> int main(void){ int x; printf(" 정수한개를입력하시오 (2~9 까지 ) "); scanf("%d", &x); switch( x ){ case 2: case 3: case 5: case 7: printf(" 소수 \n"); case 4: case 6: case 8: case 9: printf(" 합성수 \n"); default: printf("none\n"); return 0; 39 5) switch 문 ( 실습 10) 야구팀이름출력프로그램을 switch 문으로작성해보자. 입력 출력 T t Tigers Tigers 입력 T 혹은 t E 혹은 e 출력 Tigers Eagles E Eagles B 혹은 b 기타 Bears none B Bears A none 40

5) switch 문 ( 실습 11) 수학문제가 3개있다. 0 ~ 9 사이의숫자를입력받아서 3 문제중하나를선택하여문제를맞추게하는프로그램을작성하시오. 입력숫자와문제짝은아래표와같다. 입력 문제 0, 3, 4, 7 13 * 13 = 1, 2, 9 17 * 17 = 5, 6, 8 19 * 19 = 기타 none 입력 4 169 5 270 출력 13*13= 맞음 19*19= 틀림 41