C 4장. 연산자 #include <stdio.h> int main(void) { int num;

Slides:



Advertisements
Similar presentations
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
Advertisements

제6장 조건문.
데이터의 표현과 연산 (1) (Chapter 3)
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
C 프로그래밍.
C 6장. 함수 #include <stdio.h> int main(void) { int num;
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
Chapter 06. 선택문.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
Chapter 3 Flow of Control
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
Chapter 4 수식과 연산자.
제2장 데이터형과 표준 입출력문 문봉근.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 09. C언어의 핵심! 함수!
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 11. 배열과 포인터.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
연산자Operators C언어의 기본 구조 도서출판 한산 C언어의 기본 구조 1: #include <stdio.h>
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
Part 06 세상을 변화시키는 연산자 안산1대학 디지털정보통신과 임 성 국.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
C언어 프로그래밍의 이해 Ch05. 명령문.
-Part1- 제7장 반복문이란 무엇인가.
-Part1- 제6장 자료형이란 무엇인가.
18장. 다차원 배열 그리고 포인터.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
3주차: Control Flow and Others
어서와 C언어는 처음이지 제16장.
argc, argv 의 사용방법 #include <stdio.h>
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
C.
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
어서와 C언어는 처음이지 제22장.
Presentation transcript:

C 4장. 연산자 #include <stdio.h> int main(void) { int num; printf(“Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("Is negative.\n"); printf("num = %d\n", num); return 0; }

■ 연산자의 우선 순위와 결합 방향에 대하여 알아본다. 학습목표 ■ 수식의 개념과 연산자, 피연산자에 대해서 알아본다. ■ C의 연산자의 종류를 알아본다. ■ 연산자의 우선 순위와 결합 방향에 대하여 알아본다. 4장. 연산자

목차 4장. 연산자 연산자의 기본 개념 연산자의 종류 연산자의 우선순위와 결합 방향 수식 연산자와 피연산자 산술 연산자 / 증감 연산자 관계 연산자 / 논리 연산자 비트 연산자 / 대입 연산자 조건 연산자 / 형변환 연산자 연산자의 우선순위와 결합 방향 연산자의 우선순위 연산자의 결합 방향 4장. 연산자

수식(expression) 연산자의 기본개념 값을 갖는 요소 수식의 값을 구하는 것을 ‘수식을 평가한다’고 한다. 연산식 : 연산자를 이용한 수식 연산자(operator)와 하나 이상의 피연산자(operand)로 구성 4장. 연산자

연산자 피연산자 연산자의 기본개념 연산에 사용되는 기호 연산자와 피연산자 연산자 연산에 사용되는 기호 +, -, ++, --, ==, >, <, &&, ||, <<, >> 등 피연산자 연산의 대상이 되는 값 4장. 연산자

연산자의 기본개념 연산자와 피연산자 연산자의 종류(1/2) 피연산자의 개수에 따른 연산자의 종류 4장. 연산자

연산자의 기본개념 연산자와 피연산자 연산자의 종류(2/2) 연산자의 기능에 따른 연산자의 종류 4장. 연산자

연산자의 종류 산술 연산자 산술 연산자 기본적인 사칙 연산 기능을 제공하는 연산자 4장. 연산자

산술 연산자의 사용 예(1/2) 연산자의 종류 산술 연산자 4장. 연산자 01: /* Ex04_01.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int num1, num2; 07: int result; 08: 09: printf("두 개의 정수를 입력하세요 : "); 10: scanf("%d %d", &num1, &num2); 11: 12: result = num1 + num2; 13: printf("%d + %d = %d\n", num1, num2, result); 14: 15: result = num1 - num2; 16: printf("%d - %d = %d\n", num1, num2, result); 17: 더하기 빼기 4장. 연산자

산술 연산자의 사용 예(2/2) 연산자의 종류 산술 연산자 4장. 연산자 18: result = num1 * num2; 19: printf("%d * %d = %d\n", num1, num2, result); 20: 21: result = num1/ num2; 22: printf("%d / %d = %d\n", num1, num2, result); 23: 24: result = num1 % num2; 25: printf("%d %% %d = %d\n", num1, num2, result); 26: 27: return 0; 28: } 곱하기 나누기 나머지 4장. 연산자

나누기 연산자(/) 나머지 연산자(%) 연산자의 종류 산술 연산자 나누기 연산자(/) 정수에 대하여 나누기 연산자(/)를 사용하면, 소수점 이하는 버리고(truncation) 몫을 정수로만 구한다. 나머지 연산자(%) 정수형에 대해서만 사용 가능 4장. 연산자

나머지 연산자의 사용 예 연산자의 종류 산술 연산자 4장. 연산자 01: /* Ex04_02.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int num; 07: int thousands, tens; 08: 09: printf("6자리 정수를 입력하세요 : "); 10: scanf("%d", &num); 11: 12: thousands = num / 1000; 13: tens = num % 1000; 14: printf("%d,%d\n", thousands, tens); 15: 16: return 0; 17: } 나머지 연산자 사용 4장. 연산자

증감 연산자 연산자의 종류 변수의 값을 1만큼 증가시키거나 감소시킨다. 증감 연산자는 반드시 변수에만 사용해야 한다. 전위형과 후위형 4장. 연산자

증감 연산자의 사용 예(1/2) 연산자의 기본개념 증감 연산자 4장. 연산자 01: /* Ex04_03.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int count; 07: int value1, value2; 08: float temperature = 10.5f; 09: 10: count = 10; 11: value1 = ++count; 12: printf("value1 = %d, count = %d\n", value1, count); 13: 14: count = 10; 15: value2 = count++; 16: printf("value2 = %d, count = %d\n", value2, count); 17: 전위형 후위형 4장. 연산자

증감 연산자의 사용 예(2/2) 연산자의 기본개념 증감 연산자 4장. 연산자 18: count = 10; 20: printf("count = %d\n", count); 21: 22: count = 10; 23: count++; 24: printf("count = %d\n", count); 25: 26: temperature++; 27: printf("temperature = %f\n", temperature); 28: 29: return 0; 30: } 전위형 후위형 실수형에도 증감 연산자를 사용할 수 있다. 4장. 연산자

관계 연산자(1/2) 연산자의 종류 두 수의 값을 비교할 때 사용되는 연산자 수식의 값이 항상 참 또는 거짓이 된다. 4장. 연산자

관계 연산자(2/2) 연산자의 종류 두 수의 값이 같은지 비교할 때는 = 연산자가 아니라 == 연산자를 사용해야 한다. 4장. 연산자

관계 연산자의 사용 예 연산자의 종류 관계 연산자 4장. 연산자 01: /* Ex04_04.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int a = 10; 07: int b = 20; 08: 09: printf("a = %d, b = %d\n", a, b); 10: printf("a > b = %d\n", a > b); 11: printf("a >= b = %d\n", a >= b); 12: printf("a < b = %d\n", a < b); 13: printf("a <= b = %d\n", a <= b); 14: printf("a == b = %d\n", a == b); 15: printf("a != b = %d\n", a != b); 16: 17: return 0; 18: } 관계 연산자 4장. 연산자

논리 연산자(1/2) 연산자의 종류 참과 거짓을 이용한 논리 연산 기능을 제공 AND(&&), OR(||), NOT(!) 연산 논리 연산자를 사용하지 않으면 잘못된 수식을 만들 수 있으므로 주의해야 한다. 4장. 연산자

연산자의 종류 논리 연산자 논리 연산자(2/2) 논리 연산자의 연산 결과 4장. 연산자

논리 연산자의 사용 예 연산자의 종류 논리 연산자 4장. 연산자 01: /* Ex04_05.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int score = 95; 07: 08: printf("90점 이상 100점 이하인가? : %d\n", 09: score >= 90 && score <= 100); 10: 11: printf("0점 또는 100점인가? : %d\n", 12: score == 0 || score == 100); 13: 14: printf("0점인가? : %d\n", !score); 16: return 0; 17: } 논리 연산자 논리 연산자 논리 연산자 4장. 연산자

논리 연산자의 우선순위 연산자의 종류 논리 연산자는 관계 연산자보다 우선순위가 낮다. && 연산자가 || 연산자보다 우선순위가 높고, ! 연산자는 관계 연산자보다 우선순위가 높다. 4장. 연산자

비트 AND 연산자(&) 연산자의 종류 각 비트 단위로 AND 연산을 수행 int a = 10; int b = 12; 비트 연산자 비트 AND 연산자(&) 각 비트 단위로 AND 연산을 수행 int a = 10; int b = 12; int c = a & b; 4장. 연산자

16진수와 2진수 변환 연산자의 종류 2진수는 0과 1만을 사용하고, 16진수는 0~9, A~F를 사용한다. 비트 연산자 16진수와 2진수 변환 2진수는 0과 1만을 사용하고, 16진수는 0~9, A~F를 사용한다. 16진수를 2진수로 변환하려면, 16진수 1자리를 이진수 4자리로 나타내면 된다. 4장. 연산자

비트 OR 연산자(|) 연산자의 종류 피연산자의 같은 위치에 있는 비트에 대해서 비트 OR 연산을 수행 int a = 10; 비트 연산자 비트 OR 연산자(|) 피연산자의 같은 위치에 있는 비트에 대해서 비트 OR 연산을 수행 int a = 10; int b = 12; int c = a | b; 4장. 연산자

비트 XOR 연산자(^) 연산자의 종류 피연산자의 같은 위치에 있는 비트에 대해서 비트 XOR 연산을 수행 비트 연산자 비트 XOR 연산자(^) 피연산자의 같은 위치에 있는 비트에 대해서 비트 XOR 연산을 수행 int a = 10; int b = 12; int c = a ^ b; 4장. 연산자

비트 NOT 연산자(~) 연산자의 종류 피연산자의 각 비트를 반전시킨다. 즉, 0은 1로, 1은 0으로 만든다. 비트 연산자 비트 NOT 연산자(~) 피연산자의 각 비트를 반전시킨다. 즉, 0은 1로, 1은 0으로 만든다. int a = 10; int c = ~a; 4장. 연산자

비트 연산자의 사용 예 연산자의 종류 비트 연산자 4장. 연산자 01: /* Ex04_06.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int a = 10; // 0x0a 07: int b = 12; // 0x0c 08: int c; 09: 10: c = a & b; 11: printf("a & b = %08x(%d)\n", c, c); 12: 13: c = a | b; 14: printf("a | b = %08x(%d)\n", c, c); 15: 16: c = a ^ b; 17: printf("a ^ b = %08x(%d)\n", c, c); 18: 19: c = ~a; 20: printf("~a = %08x(%d)\n", c, c); 21: 22: return 0; 23: } 비트 AND 연산자 비트 OR 연산자 비트 XOR 연산자 비트 NOT 연산자 4장. 연산자

10 << 2 비트 이동 연산자(1/2) 연산자의 종류 비트 연산자 비트 이동 연산자(1/2) 비트 왼쪽 이동을 할 때는 왼쪽으로 밀려난 비트가 사라져 버리고, 오른쪽 빈자리에는 0이 채워진다. 비트 왼쪽 이동은 2N을 곱하는 것이다. 10 << 2 4장. 연산자

10 >> 2 비트 이동 연산자(2/2) 연산자의 종류 비트 연산자 비트 이동 연산자(2/2) 비트 오른쪽 이동을 할 때는 오른쪽으로 밀려난 비트가 사라져 버리고, 왼쪽 빈자리에는 부호 비트가 채워진다. 비트 오른쪽 이동은 2N으로 나누는 것이다. 10 >> 2 4장. 연산자

비트 이동 연산자의 사용 예 연산자의 종류 비트 연산자 4장. 연산자 01: /* Ex04_07.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int a = 10; // 0x0a 07: int b; 08: 09: b = a << 2; 10: printf("a << 2 = %08x(%d)\n", b, b); 11: 12: b = a >> 2; 13: printf("a >> 2 = %08x(%d)\n", b, b); 14: 15: return 0; 16: } 비트 왼쪽 이동 연산자 비트 오른쪽 이동 연산자 4장. 연산자

대입 연산자(1/4) 연산자의 종류 대입 연산자(=)는 연산자의 좌변(변수)에 우변의 값을 저장한다. 대입 연산자의 좌변(l-value)에는 반드시 변수만 사용해야 한다. 4장. 연산자

연산자의 종류 대입 연산자 대입 연산자(2/4) 대입 연산을 수행하면, 대입 연산자의 좌변에 있는 l-value의 값이 연산의 결과가 된다. 4장. 연산자

대입 연산자(3/4) 연산자의 종류 대입 연산자는 산술 연산자, 비트 연산자와 결합해서 복합 대입 연산자로 사용될 수 있다. 4장. 연산자

연산자의 종류 대입 연산자 대입 연산자(4/4) 복합 대입 연산자를 다른 연산자와 함께 사용할 때는 복합 대입 연산자는 다른 연산자에 비해서 우선순위가 낮기 때문에 주의해야 한다. 4장. 연산자

대입 연산자의 사용 예 연산자의 종류 대입 연산자 4장. 연산자 01: /* Ex04_08.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int num; 07: 08: num = 5; 09: printf("num = %d\n", num); 10: 11: num += 2; 12: printf("num = %d\n", num); 13: 14: num *= 2; 15: printf("num = %d\n", num); 16: 17: num |= 3; 18: printf("num = %d\n", num); 19: 20: num <<= 2; 21: printf("num = %d\n", num); 22: 23: return 0; 24: } 대입 연산자 복합 대입 연산자 복합 대입 연산자 복합 대입 연산자 복합 대입 연산자 4장. 연산자

연산자의 종류 조건 연산자 조건 연산자 유일한 삼항 연산자 4장. 연산자

조건 연산자의 사용 예 연산자의 종류 조건 연산자 4장. 연산자 01: /* Ex04_09.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int a, b; 07: int min, max; 08: 09: printf("두 개의 정수를 입력하세요 : "); 10: scanf("%d %d", &a, &b); 11: 12: min = a < b ? a : b; 13: max = a > b ? a : b; 14: 15: printf("min = %d, max = %d\n", min, max); 16: 17: return 0; 18: } 조건 연산자 4장. 연산자

암시적인 형 변환 연산자의 종류 컴파일러에 의해서 자동으로 처리되는 형 변환 형 변환이 일어나는 경우 서로 다른 형의 값을 혼합 연산하는 경우 변수에 다른 형의 값을 대입할 때 4장. 연산자

승진에 의한 자동 형 변환 예 연산자의 종류 형 변환 연산자 4장. 연산자 01: /* Ex04_10.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: short a = 500; 07: short b = 800; 08: short c; 09: 10: printf("a * b = %d\n", a * b); 11: 12: c = a * b; 13: printf("c = %d\n", c); 14: 15: return 0; 16: } 승진에 의한 형변환 4장. 연산자

연산자의 종류 형 변환 연산자 승진에 의한 형 변환 4장. 연산자

대입 연산 시 형 변환 예 연산자의 종류 형 변환 연산자 4장. 연산자 01: /* Ex04_11.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int num; 07: double f; 08: 09: num = 3.14; 10: printf("num = %d\n", num); 11: 12: f = 123; 13: printf("f = %f\n", f); 14: 15: return 0; 16: } 대입 연산 시 자동 형변환 대입 연산 시 자동 형변환 4장. 연산자

명시적인 형 변환(1/2) 연산자의 종류 프로그래머가 명시적으로 형 변환을 하고 싶을 때, 형 변환 연산자를 이용한다. 4장. 연산자

명시적인 형 변환(2/2) 연산자의 종류 형 변환 연산자를 사용하면, 연산의 결과가 달라질 수 있으므로 주의해야 한다. 연산 전에 형 변환을 하는지, 연산 후에 형 변환을 하는지에 따라 연산의 결과가 달라질 수 있다. 4장. 연산자

명시적인 형 변환 예(1/2) 연산자의 종류 형변환 연산자 4장. 연산자 01: /* Ex04_12.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int num; 07: float f; 08: 09: f = 10 / 3; 10: printf("f = %f\n", f); 11: 12: f = (float) 10 / 3; 13: printf("f = %f\n", f); 14: 15: f = (float) 10 / (float) 3; 16: printf("f = %f\n", f); 17: int / int로 처리 명시적인 형변환 명시적인 형변환 4장. 연산자

명시적인 형 변환 예(2/2) 연산자의 종류 형변환 연산자 4장. 연산자 18: num = (int) (12.5 + 10.7); 19: printf("num = %d\n", num); 20: 21: num = (int)12.5 + (int)10.7; 22: printf("num = %d\n", num); 23: 24: return 0; 25: } 명시적인 형변환 명시적인 형변환 4장. 연산자

연산자의 우선순위(1/2) 연산자의 우선순위와 결합 방향 단항 > 산술 > 관계 > 논리 > 대입 > 콤마 연산자 우선순위 연산자 결합 방향 1 ( ) [ ] -> . → 2 ++ -- +(부호) -(부호) sizeof ~ ! * & (type) ← 3 * / % 4 + - 5 << >> 6 < <= > >= 7 == != 8 & 9 ^ 10 | 11 && 12 || 13 ?: 14 = += -= *= /= %= &= |= ^= <<= >>= 15 ,(콤마) 4장. 연산자

연산자의 우선순위(2/2) 연산자의 우선순위와 결합 방향 기본적인 연산자의 우선순위와는 다른 순서로 연산을 수행하려면 ( )를 사용한다. 4장. 연산자

연산자의 결합 방향 연산자의 우선순위와 결합 방향 같은 우선순위의 연산자에 대해서 어느 방향으로 연산을 수행할지 여부 4장. 연산자

연산자의 우선순위와 결합 방향 예 연산자의 우선순위와 결합 방향 4장. 연산자 01: /* Ex04_13.c */ 02: #include <stdio.h> 03: 04: int main(void) 05: { 06: int a = 1, b = 2, c = 3; 07: int result; 08: 09: result = a + b * c % 2; 10: printf("result = %d\n", result); 11: 12: result = a > b || c > 0; 13: printf("result = %d\n", result); 14: 15: result = a > b || c > 0 && b > c; 16: printf("result = %d\n", result); 17: 18: result = ++a * b--; 19: printf("result = %d\n", result); 20: 21: result = a = b = c; 22: printf("result = %d\n", result); 23: 24: return 0; 25: } 4장. 연산자

연산자의 기본 개념 학습정리 수식 : C 프로그램에서 값을 갖는 요소 연산자 : +, -, *, /처럼 연산에 사용되는 기호 피연산자 : 연산의 대상이 되는 값 4장. 연산자

연산자의 종류 연산자의 우선 순위와 결합 방향 학습정리 우선 순위 단항 > 산술 > 관계 > 논리 > 대입 > 콤마 결합 방향 : 같은 우선순위의 연산자에 대해서 어느 방향으로 연산을 수행할지 4장. 연산자

4장. 연산자 수고하셨습니다. 질문 있습니까? NEXT Chapter 5장. 제어문