컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) - 김선균 (kyun@kangwon.ac.kr) 2017. 04. 05
< 목 차 > 이전시간 과제설명 Review 조건문 if 조건문 if-else 조건문 else if 조건문 switch-case 실습 #1, 2, 3 과제 #2
과제 설명
0. Review 연산자의 분류 연산자 의미 대입 = 오른쪽을 왼쪽에 대입 산술 + - * / % 사칙연산과 나머지 연산 부호 증감 ++ -- 증가, 감소 연산 관계 > < == != >= <= 오른쪽과 왼쪽을 비교 논리 && || ! 논리적인 AND, OR 조건 ? 조건에 따라 선택 콤마 , 피연산자들을 순차적으로 실행 비트 단위 연산자 & | ^ ~ << >> 비트별 AND, OR, XOR, 이동, 반전 sizeof 연산자 sizeof 자료형이나 변수의 크기를 바이트 단위로 반환 형변환 (type) 변수나 상수의 자료형을 변환 포인터 연산자 * & [] 주소계산, 포인터가 가리키는 곳의 내용 추출 구조체 연산자 . -> 구조체의 멤버 참조
0. Review ++x x++ --x x-- 증가 및 감소하는 값은 1이다. 증감 연산자 의미 수식의 값은 증가된 x값이다.
0. Review 왼쪽에 있는 변수에 오른쪽의 수식의 값을 계산하여 대입 Ex) z = x + y; 변수(variable) = 수식(expression);
0. Review 복합 대입 연산자 의미 x += y x = x + y x -= y x = x - y x *= y
x == y x y 0. Review 두개의 피연산자를 비교하는 연산자 결과값은 참(1) 아니면 거짓(0)
0. Review 연산자 의미 x == y x와 y가 같은가? x != y x와 y가 다른가? x > y
0. Review p && q 여러 개의 조건을 조합하여 참과 거짓을 따지는 연산자 결과값은 참(1) 아니면 거짓(0) x와 y가 모두 참인 경우에만 참이 된다. p && q
0. Review p && q 여러 개의 조건을 조합하여 참과 거짓을 따지는 연산자 결과값은 참(1) 아니면 거짓(0) x와 y가 모두 참인 경우에만 참이 된다. p && q
0. Review 대입 연산시 자동적인 형변환이 된다. 올림변환 내림변환 double f; f = 10 ; // f에는 10.0이 저장된다. int i; i = 3.141592; // i에는 3이 저장된다.
1. 조건문 - if if 문의 사용 – 만약에 (조건)을 만족한다면...? 사용법 if 문을 사용한 예 if( 조건 ) { 조건 만족 시 내용 } int time = 5; if(time <= 4) { printf(“time은 4보다 작거나 같다.\n”); }
1. 조건문 – if 예제
2. 조건문 – if-else else 문의 사용 – 그렇지 않다면...? else는 단독으로 사용될 수 없음. if 문과 함께 사용 if 문에서 조건을 만족하지 않았을 때 처리되는 내용이 실행 if-else의 사용의 예 if( age < 20 ) { printf(“당신은 성인이 아닙니다.\n”); } else { printf(“당신은 성인입니다.\n”);
2. 조건문 – if-else 예제
3. 조건문 – else if else if 문의 사용 – 여러 경우일 때 사용 조건의 경우가 여러 경우일 때 사용한다.
3. 조건문 – else if 예제
4. 조건문 – switch case switch case 문이 뭘가요...? 어디서 쓰나...?
4. 조건문 – switch case switch case 문의 사용 – 괄호 안의 값이 ... 일 경우에? 사용법 { case 값 : 조건 만족시 내용 break; } 콜론(:) 에 유의 보통의 경우 break 필수
4. 조건문 – switch case switch case 문의 사용 – 괄호 안의 값이 ... 일 경우에?
4. 조건문 – switch case 예제
4. 조건문 –switch case 예제2 #include <stdio.h> int main(void) { char op; int x, y, result; printf("수식을 입력하시오"); printf("(예: 2 + 5) "); printf(">>"); scanf("%d %c %d", &x, &op, &y); switch(op) case ‘+’: result = x + y; break; case ‘-’ : result = x – y; break
4. 조건문 –switch case 예제2 수식을 입력하시오 (예: 2 + 5) >>2 + 5 2 + 5 = 7 result = x * y; break; case ‘/’ : result = x / y; case ‘%’: result = x % y; case ‘^’: result = x ^ y; default: printf(“지원되지 않는 연산자 입니다.\n”); } printf(“%d %c %d = %d”, x, op, y, result); return 0; 수식을 입력하시오 (예: 2 + 5) >>2 + 5 2 + 5 = 7
3. 실습 #1 if( op == '+' ) #include <stdio.h> int main(void) { char op; int x, y, result; printf("수식을 입력하시오"); printf("(예: 2 + 5) "); 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("지원되지 않는 연산자입니다. "); printf("%d %c %d = %d ", x, op, y, result); return 0; }
3. 실습 #2 // 달의 일수를 계산하는 프로그램 #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; }
3. 실습 #3 사용자로부터 두 개의 정수를 입력 받아서 둘 중에서 큰 수를 출력한다.
3. 과제 #3 조건문(if-else)과 switch문을 이용하여 출력화면을 작성하세요
메일 제목 : [학번][이름] 과제#3 4월 11일 까지 제출해주세요 작성한 학생은 kyun@kangwon.ac.kr로 보내주세요 메일 제목 : [학번][이름] 과제#3 4월 11일 까지 제출해주세요
4. Q&A