Chapter 06. 선택문.

Slides:



Advertisements
Similar presentations
여러분은 매일 아침밥을 먹고 나오나요? 아침밥을 왜 못 먹게 되는 걸까? 남학생 여학생 아침밥을 왜 못 먹게 되는 걸까? 32 % 12 % 34 % 21 %
Advertisements

C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
제6장 조건문.
데이터의 표현과 연산 (1) (Chapter 3)
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
C 프로그래밍.
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
7. while 문의 흐름 제어.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
변수와 자료형.
Chapter 10. 포인터.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
6장 배열.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
adopted from KNK C Programming : A Modern Approach
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
학습 주제 p 탄성력에 의한 위치 에너지.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제7장 반복문이란 무엇인가.
18장. 다차원 배열 그리고 포인터.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
뇌를 자극하는 C 프로그래밍.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 08. 조건에 따른 흐름의 분기.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
Chapter 08 조건문.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
어서와 C언어는 처음이지 제16장.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Chapter 09. 배열.
어서와 C언어는 처음이지 제22장.
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
11장. 1차원 배열.
Presentation transcript:

chapter 06. 선택문

경우에 따라서 특정 문장을 선택적으로 실행시켜야 할 필요가 있다. 선택문의 필요성 경우에 따라서 특정 문장을 선택적으로 실행시켜야 할 필요가 있다. - 두 정수값을 계산하여 몫을 구하는 경우 0으로 나눌 수 없다. int a, b, res; printf(“두 정수를 입력하세요 : ”); scanf(“%d%d”, &a, &b); res = a / b; // b가 0이 아닌 경우만 실행 printf(“a를 b로 나눈 몫 : %d\n”, res); 선택문의 조건식에는 주로 관계연산자와 논리연산자가 사용된다.

관계식은 두 값의 크기를 비교하는 연산이며 관계연산자를 사용한다. ▶ 관계연산자 관계식은 두 값의 크기를 비교하는 연산이며 관계연산자를 사용한다. 관계식의 결과는 참과 거짓이며 1과 0이 결과값이 된다. printf(“연산결과가 참인 경우 : %d\n”, 20>10); printf(“연산결과가 거짓인 경우 : %d\n”, 10>20); 연산결과가 참인 경우 : 1 연산결과가 거짓인 경우 : 0

▶ 관계연산자 정리 관계연산자에는 다음과 같은 것들이 있다. 범위를 표현할 때는 논리식을 사용해야 한다. 연산 결과 > 왼쪽의 값이 오른쪽의 값보다 크면 참 < 왼쪽의 값이 오른쪽의 값보다 작으면 참 >= 왼쪽의 값이 오른쪽의 값보다 크거나 같으면 참 <= 왼쪽의 값이 오른쪽의 값보다 작거나 같으면 참 == 두 값이 같으면 참 != 두 값이 같지 않으면 참 범위를 표현할 때는 논리식을 사용해야 한다. 논리관계가 포함되어 있다.

논리연산자는 두 피연산자의 참과 거짓에 따라 연산의 결과값을 결정하며, 연산식의 결과 역시 참과 거짓이다. ▶ 논리연산자 논리연산자는 두 피연산자의 참과 거짓에 따라 연산의 결과값을 결정하며, 연산식의 결과 역시 참과 거짓이다. - a의 값이 15일 때 논리연산자의 종류 논리연산자 의미 연산 결과 && 논리곱(and) 왼쪽과 오른쪽의 값이 모두 참일 때만 참 || 논리합(or) 왼쪽과 오른쪽의 값 중에서 하나라도 참이면 참 ! 논리부정(not) 피연산자가 참이면 거짓이고, 거짓이면 참

▶ 논리연산자의 사용 예 #include <stdio.h> int main() { int a=10; printf("논리곱 연산 : %d\n", (a>5) && (a<=15)); printf("논리합 연산 : %d\n", (a!=10) || (a==20)); printf("논리부정 연산 : %d\n", !((a-5)>0)); printf("피연산자가 상수인 경우 : %d\n", -3.4 && (a>0)); return 0; } 논리곱 연산 : 1 논리합 연산 : 0 논리부정 연산 : 0 피연산자가 상수인 경우 : 1

if~else if~else구문을 사용한 선택문 else의 결합 문제(dangling else 문제)

if문의 조건식이 참이면 실행할 문장을 실행한다. int a, b, res; printf(“두 정수를 입력하세요 : ”); scanf(“%d%d”, &a, &b); if(b!=0) res = a / b; // b가 0이 아닌 경우만 선택적으로 실행된다. printf(“a를 b로 나눈 몫 : %d\n”, res); 실행할 문장이 두 개 이상이면 중괄호로 묶어준다.

▶ if~else구문을 사용한 선택문 조건식의 참, 거짓에 따라 각각 실행할 문장이 있을 때 사용한다. 조건식이 거짓일 때 실행할 문장이 여러 개라면 역시 중괄호를 사용하여 묶어 준다.

▶ if~else구문을 사용한 비만도 검사 프로그램 BMI는 체중을 키의 제곱으로 나눈다(단위가 체중은 kg, 키는 m). BMI가 20미만 : 저체중, 20~24.9 : 표준체중, 25이상 : 과체중 #include <stdio.h> int main() { double weight, height; double bmi; printf("몸무게를 입력하세요(kg) : "); scanf("%lf", &weight); printf("키를 입력하세요(cm) : "); scanf("%lf", &height); height = height / 100; bmi = weight / (height * height); printf("당신의 BMI는 : %.1lf입니다.\n", bmi); if(bmi>=20.0 && bmi<25.0) printf("표준체중 입니다.\n"); else printf("체중관리가 필요합니다.\n"); return 0; } // 몸무게와 키를 입력할 변수 // bmi의 결과를 저장할 변수 // 키를 m단위로 환산

▶ if~else if~else구문을 사용한 선택문 조건에 따라 선택한 문장이 많은 경우에 사용한다. - 표준체중이 아닌 경우에 저체중과 과체중을 구분하는 예 if(bmi>=20.0 && bmi<25.0) printf(“표준체중입니다.\n”); else if(bmi<20) printf(“저체중입니다.\n”); printf(“과체중입니다.\n”); ① ② 표준체중이 아닌 경우에 실행되는 선택문 ③ if(bmi>=20.0 && bmi<25.0) printf(“표준체중입니다.\n”); else if(bmi<20) printf(“저체중입니다.\n”); else printf(“과체중입니다.\n”); 1, 2, 3번이 모두 배타적으로 실행될 때 들여쓰기를 맞춰서 사용한다.

▶ if~else if~else구문을 사용한 학점계산 프로그램 예 평균점수는 실수값으로 입력된다. 평균이 90점 이상은 A, 90점 미만 80점 이상이면 B, 80점 미만 70점 이상이면 C, 그 외는 F #include <stdio.h> int main() { double avg; char grade; printf("평균점수를 입력하세요 : "); scanf("%lf", &avg); if(avg>=90.0) grade='A'; else if(avg>=80.0) grade='B'; else if(avg>=70.0) grade='C'; else grade='F'; printf("학점은 %c입니다.\n", grade); return 0; }

▶ else의 결합 문제(dangling else 문제) if~else문에서 조건식이 참인 경우에 실행할 문장이 if문이면 예상치 못한 else가 달라 붙는 문제가 발생한다. else가 안쪽의 if문과 결합한다! 이 경우에 안쪽에 중첩된 if문이 하나의 문장일지라도 중괄호를 사용하여 구분해준다. if(조건식1){ if(조건식2) 실행할 문장1; } else 실행할 문장2;

switch~case문을 사용한 선택문 조건에 따라 선택할 문장이 많은 경우에 사용한다. 조건식은 정수식을 사용하며 case의 일치하는 문장을 실행한다.

▶ switch~case 구문을 사용한 추첨 프로그램 #include <stdio.h> int main() { int lot; printf("당첨 번호를 입력하세요 : "); scanf("%d", &lot); switch(lot){ case 1: printf("김서방"); break; case 2: printf("홍가네"); case 3: printf("안산댁"); default: printf("당첨자가 없습니다!"); } return 0; // 당첨번호가 1이면 // 김서방을 출력하고 // switch~case의 블록을 빠져나간다. // 일치하는 당첨번호가 없으면 실행한다.

▶ break가 없으면 switch~case문은 분기문이다.