SlideShare a Scribd company logo
1 of 16
Download to read offline
2016.08.18
1
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
2
C 프로그래밍 (2)식과 연산자
식(expression) 구조 식의 값과 출력
C언어 식(expression) 구성
- 식(expression) : 컴퓨터에서 여러 가지
처리를 ‘계산’으로 실행, 코드 안에서
식의 계산으로 표현됨
- 연산자(operator) : 연산하는 방식
- 피연산자(operand) : 연산의 대상
- 식의 평가 : 식의 결과 값 도출
연산자와 피연산자의 조합
int num1 = 2;
int num2 = 3;
int sum = num1+num2;
printf(“1+2는 %d입니다. n”, 1+2);
printf(“3X4는 %d입니다. n”, 3*4);
printf(“num1+num2의 값은 %d n”,
sum);
num1 = num1 + 1;
printf(“num1에 1을 더한 값은 %d n”,
num1);
1 2
3
+
평가
피연산자 피연산자
연산자
식
1+2는 3입니다.
3x4는 12입니다.
num1+num2의 값은 5입니다.
num1에 1을 더한 값은 3입니다.
다양한 연산
실행한 결과
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
3
연산자의 종류
기호 이름 단항 기호 이름 단항
+ 덧셈 >= 이상
- 뺄셈 < 미만
* 곱셈 <= 이하
/ 나눗셈 == 등가
% 나머지 != 비등가
+X 단항 + 단항 ! 논리 부정 단항
-X 단항 - 단항 && 논리곱
~ 보수 단항 || 논리합
& 비트 논리곱 * 간접 참조 단항
| 비트 논리합 , 순차
^ 비트 배타적 논리합 ( ) 함수 호출 단항
= 대입 ( ) 캐스트 단항
<< 좌 시프트 [ ] 인덱스, 배열 첨자 단항
>> 우 시프트 . 멤버 참조(dot)
++ 증가 단항 ->
멤버 간접참조
(arrow)
-- 감소 단항 ? : 조건
> 보다 크다 sizeof 크기 단항
★ 단항 표시 이외의 모든 연산자는 이항 연산자임
C 프로그래밍 (2)
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
4
C 프로그래밍 (2)증감 연산자
증가 연산자(++) 감소 연산자(--)
int a = 0, b = 0;
b = a++;
printf(“대입 후에 증가했기 때문에 b의
값은 %d입니다. n”, b);
b = ++a;
printf(“대입 전에 증가했기 때문에 b의
값은 %d입니다. n”, b);
대입 후에 증가했기 때문에
b의 값은 0입니다.
대입 전에 증가했기 때문에 b의 값은 2입
니다.
실행한 결과
a++;
++a;
a = a+1;==
int a = 2, b = 0;
b = a--;
printf(“대입 후에 증가했기 때문에 b의
값은 %d입니다. n”, b);
b = --a;
printf(“대입 전에 증가했기 때문에 b의
값은 %d입니다. n”, b);
대입 후에 증가했기 때문에
b의 값은 2입니다.
대입 전에 증가했기 때문에 b의 값은 0입
니다.
실행한 결과
a--;
--a;
a = a-1;==
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
5
C 프로그래밍 (2)대입 연산자
복합 대입 연산자 덧셈 대입 연산자 예시코드
int sum = 0, num = 0;
printf(“1번째 정수를 입력하세요. n”);
scanf(“%d”, &num);
sum += num;
printf(“2번째 정수를 입력하세요. n”);
scanf(“%d”, &num);
sum += num;
printf(“2가지 수의 합계는 %d입니다.
n”, sum);
1번째 정수를 입력하세요.
1 [enter]
2번째 정수를 입력하세요.
3 [enter]
2가지 수의 합계는 4입니다.
실행한 결과
기호 이름
+= 덧셈 대입
-= 뺄셈 대입
*= 곱셈 대입
/= 나눗셈 대입
%= 나머지 대입
&= 논리곱 대입
^= 배타적 논리합 대입
|= 논리합 대입
<<= 좌 시프트 대입
>>= 우 시프트 대입
a += b; a = a+b;==
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
6
C 프로그래밍 (2)시프트(shift) 연산자
왼쪽 시프트 연산자(<<) 오른쪽 시프트 연산자(>>)
5<<2 의 연산(short int형 2byte=16bit)
5 0000000000000101
<< 2
-------------------------------
20 0000000000010100
좌변의 값이 5, 우변의 값이 2인 경우,
5 << 2 => 5 x (2 ^ 2) => 5의 4배 => 20
연산의 의미
좌변의 값을 우변에서 지정한 자릿수
만큼 왼쪽으로 이동시키고, 초과한
자릿수 만큼 오른쪽 끝자리부터 0을
채우는 연산
2자릿수 만
큼 왼쪽 이
동, 오른쪽
끝자리 0을
채움
5>>2 의 연산(short int형 2byte=16bit)
5 0000000000000101
>> 2
-------------------------------
1 0000000000000001
좌변의 값이 5, 우변의 값이 2인 경우,
5 >> 2 => 5 / (2 ^ 2) => 5의 1/4배 => 1
연산의 의미
좌변의 값을 우변에서 지정한 자릿수
만큼 오른쪽으로 이동시키고, 초과한
자릿수 만큼 왼쪽 끝자리부터 0을 채
우는 연산
2자릿수 만
큼 오른쪽
이동, 왼쪽
끝자리 0을
채움
★ 컴퓨터 내부에서는 2진수를 취급하기 때문에 일반적인 사칙연산보다 주로 시프트 연산을 사용
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
7
C 프로그래밍 (2)
ㅑ
캐스트 연산자 형 변환 예시코드
double dnum;
int inum;
dnum = 160.5;
printf(“키는 %f cm입니다. n”, dnum);
printf(“int형 변수에 대입합니다. n”);
inum = (int) dnum;
printf(“키는 %d cm입니다. n”, inum);
키는 160.500000 cm입니다.
int 형 변수에 대입합니다.
키는 160 cm 입니다.
실행한 결과
구문 : ( 데이터 형 ) 식
지정한 식의 형을 ( ) 내에서
지정한 형으로 변환, 형 변환을
코드 내에 명시적으로 표기
int형
dnum
inum
double형
int 형으로 변환
캐스트 연산자(명시적 형 변환)
inum = (int) dnum
대입할 때 크기가
작은 형으로 변환됨
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
8
C 프로그래밍 (2)연산과 형 변환
서로 다른 형의 연산 동일한 형의 연산
int d = 2;
double pi = 3.14;
printf(“지름이 %d cm인 원의 n“, d);
printf(“원둘레는 %f cm입니다. n“,
d*pi);
지름이 2 cm인 원의
원둘레는 6.280000 cm입니다.
실행 결과
한쪽의 피연산자를 크기가 큰 쪽으로
형 변환 후 연산을 처리
int num1=5, num2=4;
double div;
div = num1/num2;
printf(“5/4는 %f입니다. n”, div);
div = (double)num1/(double)num2;
printf(“5/4는 %f입니다. n”, div);
5/4는 1.000000입니다.
5/4는 1.250000입니다.
실행 결과
동일한 형의 피연산자들을 연산할 때
결과 값이 피연산자와 동일한 형인
경우와 다른 형인 경우를 고려하여
피연산자를 변환하여 연산 필요함
int형 d의 값 ‘2’가 double형 값
‘2.0’으로 변환된 후 곱셈 실행
5÷4 결과 int형 1값
5÷4의 예상 결과는
1.25이었으므로
피연사자들을
double형으로
캐스팅하여 계산함
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
9
C 프로그래밍 (2)관계 연산자와 조건
조건의 개념과 표기
5 > 3 : 이 조건의 평가는 ‘참’이다.
5 < 3 : 이 조건의 평가는 ‘거짓’이다.
a == 6 : 이 조건은 변수 a 값에 따라 결정
(a가 6이면 참, 6이외 다른 수면 거짓)
※ ==와 = 다른 기호임, ‘=‘는 대입연산자
관계 연산자
< 조건의 식 >
3 > 1 : 3은 1보다 크기 때문에 이
부등식은 ‘맞다’ 또는 ‘참’이라고 평가
3 < 1 : 이 부등식 ‘틀리다’ 또는 ‘거짓'
이라고 평가
참(true), 거짓(false)
두 가지 값 중에 하나로 표현한 것을
C언에서는 ‘조건'이라고 합니다.
그 조건이 ‘맞다‘ 또는 ‘틀리다'라는
것을 나타내는 것
3 1
참
>
평가
식
3 1
거짓
<조건
연산자 식이 참인 경우
== 우변이 좌변과 같다
!= 우변이 좌변과 같지 않다
> 우변보다 좌변이 크다
>= 우변보다 좌변이 크거나 같다
< 우변보다 좌변이 작다
<= 우변보다 좌변이 작거나 같다
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
10
C 프로그래밍 (2)
if문 구조 if문 예시코드
int res;
printf(“정수를 입력하세요. n”);
scanf(“%d”, &res);
if(res == 1)
printf(“1이 입력되었습니다.n”);
printf(“처리를 종료합니다. n”);
정수를 입력하세요.
1 [enter]
1이 입력되었습니다.
처리를 종료합니다.
참인 경우
if 구문
if(조건)
문;
1이 입력되면 조건은 참이
되고 아래의 문이 처리
조건 판단문(if문)
if
- ‘조건’의 값(참 또는 거
짓)에 따라 처리가 이
루어지는 구문
- 조건이 참이면 아래의
지정한 문이 처리
조건
문
참
거짓 정수를 입력하세요.
10 [enter]
처리를 종료합니다.
거짓인 경우
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
11
C 프로그래밍 (2)
if ~ else문 구조 if ~ else문 예시코드
int res;
printf(“정수를 입력하세요. n”);
scanf(“%d”, &res);
if(res == 1) {
printf(“1이 입력되었습니다.n”);
} else {
printf(“1 이외의 값이 입력되었습니다.n”);
}
정수를 입력하세요.
1 [enter]
1이 입력되었습니다.
참인 경우
if(조건){
문1; 문2;
} else {
문3; 문4;
}
1이 입력되면 if 문 아래
구문이 처리되고
그 외의 값이 들어오면
else 아래 구문 처리
조건 판단문(if ~ else 문)
- 조건이 참이면 문1을
처리하고, 거짓이면
문2를 처리함
- 이 구문도 { }로 묶어서
복수의 문 처리 가능
조건
문2
참거짓
정수를 입력하세요.
10 [enter]
1 이외의 값이 입력되
었습니다.
거짓인 경우
문1
문4
문3
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
12
C 프로그래밍 (2)
if ~ else if ~ else문 구조 if ~ else if ~ else문 예시코드
int res;
printf(“정수를 입력하세요. n”);
scanf(“%d”, &res);
if(res == 1) {
printf(“1이 입력되었습니다.n”);
} else if(res == 2){
printf(“2가 입력되었습니다.n”);
} else {
printf(“1이나 2를 입력하세요.n”);
}
정수를 입력하세요.
1 [enter]
1이 입력되었습니다.
1 입력 경우
if(조건1){
문1; 문2;
} else if(조건2){
문3; 문4;
} else {
…
}
조건 판단문(if ~ else if ~ else 문)
- 두 가지 이상의 조건에
따른 처리 가능
- 조건1 참이면 아래 구문
처리, 거짓이면 다음 조
건을 판단하고 모든 조
건이 거짓이면 else 아
래의 문이 처리
정수를 입력하세요.
2 [enter]
2가 입력되었습니다.
2 입력 경우
조건1
참
거짓
문
거짓
조건2
문
문
참
정수를 입력하세요.
3 [enter]
1이나 2를 입력하세요.
1, 2 이외
입력 경우
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
13
C 프로그래밍 (2)
switch문 구조 switch문 순서도
switch(식){
case 상수1:
문1;
…
break;
case 상수2:
문2;
…
break;
default:
문D;
…
break;
}
조건 판단문(switch 문)
- switch문 안의 식이
case 상수 값과 일
치하면, 아래의 문
부터 ‘break’까지 처
리됨. 만약 어느
case 상수 값과도
일치하지 않는다면
‘default’아래의 문이
처리됨
- switch문을 이용하
면 식과 case 상수
를 비교하여 if~else
if~else 구문 보다
간단하게 표기할 수
있음
case1:
switch
문
default:
case2:
문
문
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
14
논리 연산자
연산자 참이 되는 경우
평가
좌 우 전체
&& 좌변과 우변이 모두 참일 때
거짓 거짓 거짓
거짓 참 거짓
참 거짓 거짓
참 참 참
|| 좌변과 우변 중 한쪽이 참일 때
거짓 거짓 거짓
거짓 참 참
참 거짓 참
참 참 참
! 우변이 거짓일 때
거짓 참
참 거짓
C 프로그래밍 (2)
5>3 && 3==4
a==6 || a>=12
!(a==6)
5>3 식은 참이고 3==4 식은 거짓이며
참 && 거짓 연산 결과는 거짓입니다.
변수 a의 값이 6 또는 12 이상일 때 참이 됩니다.
변수 a의 값이 6이 아닐 때 참이 됩니다.
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
15
C 프로그래밍 (2)조건 연산자
ans = (res==1) ? ‘A’ : ‘B’
참일 경우 ans = ‘A’
거짓일 경우 ans = ‘B’
조건 연산자 조건 연산자 예시 코드
- 조건 연산자를 사용하면 간단한
조건에 따른 처리를 할 수 있다.
- 조건 연산자는 세 개의 피연산자를
가진다.
- 전체 식의 값은 조건이 참일 때 식 1
의 값, 거짓일 때 식 2의 값이 됩니다.
조건 ? 참이면 식1 : 거짓이면 식2
int res;
char ans;
printf(“몇 번째를 선택할까요? n”);
printf(“정수를 입력하세요. n”);
scanf(“%d”, &res);
ans = (res==1) ? ‘A’ : ‘B’;
printf(“%c 코스를 선택했습니다. n”, ans);
몇 번째를 선택할까요?
정수를 입력하세요.
1 [enter]
A코스를 선택했습니다.
‘1’ 입력 결과
몇 번째를 선택할까요?
정수를 입력하세요.
2 [enter]
B코스를 선택했습니다.
‘2’ 입력 결과
YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ
16
본 자료는 코딩인카페 1기 C&JAVA 기초과정
5회차 자료 중 일부를 발췌한 내용입니다.
< 참고자료 >
- 그림으로 배우는 C프로그래밍, 마나 다카하시, 영진닷컴.

More Related Content

What's hot

C수업자료
C수업자료C수업자료
C수업자료koominsu
 
C++ 타입 추론
C++ 타입 추론C++ 타입 추론
C++ 타입 추론Huey Park
 
6장 표현식 및 문장
6장 표현식 및 문장6장 표현식 및 문장
6장 표현식 및 문장재정 이
 
2 1. variables & data types
2 1. variables & data types2 1. variables & data types
2 1. variables & data types웅식 전
 
Modern C++의 타입 추론과 람다, 컨셉
Modern C++의 타입 추론과 람다, 컨셉Modern C++의 타입 추론과 람다, 컨셉
Modern C++의 타입 추론과 람다, 컨셉HyunJoon Park
 
Refelction의 개념과 RTTR 라이브러리
Refelction의 개념과 RTTR 라이브러리Refelction의 개념과 RTTR 라이브러리
Refelction의 개념과 RTTR 라이브러리ssuser7c5a40
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2dktm
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발흥배 최
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기Jongwook Choi
 
C++ Advanced 강의 3주차
C++ Advanced 강의 3주차C++ Advanced 강의 3주차
C++ Advanced 강의 3주차HyunJoon Park
 
Lua 문법 -함수
Lua 문법 -함수Lua 문법 -함수
Lua 문법 -함수Jaehoon Lee
 
(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3guestc0587d1
 
2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자Circulus
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
[C++ korea] effective modern c++ study item8~10 정은식
[C++ korea] effective modern c++ study item8~10 정은식[C++ korea] effective modern c++ study item8~10 정은식
[C++ korea] effective modern c++ study item8~10 정은식은식 정
 
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...Seok-joon Yun
 
C++20 Key Features Summary
C++20 Key Features SummaryC++20 Key Features Summary
C++20 Key Features SummaryChris Ohk
 
2. c언어의 기본
2. c언어의 기본2. c언어의 기본
2. c언어의 기본SeonMan Kim
 

What's hot (20)

C수업자료
C수업자료C수업자료
C수업자료
 
C++ 타입 추론
C++ 타입 추론C++ 타입 추론
C++ 타입 추론
 
6장 표현식 및 문장
6장 표현식 및 문장6장 표현식 및 문장
6장 표현식 및 문장
 
2 1. variables & data types
2 1. variables & data types2 1. variables & data types
2 1. variables & data types
 
Modern C++의 타입 추론과 람다, 컨셉
Modern C++의 타입 추론과 람다, 컨셉Modern C++의 타입 추론과 람다, 컨셉
Modern C++의 타입 추론과 람다, 컨셉
 
Refelction의 개념과 RTTR 라이브러리
Refelction의 개념과 RTTR 라이브러리Refelction의 개념과 RTTR 라이브러리
Refelction의 개념과 RTTR 라이브러리
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
 
C++ Advanced 강의 3주차
C++ Advanced 강의 3주차C++ Advanced 강의 3주차
C++ Advanced 강의 3주차
 
Lua 문법 -함수
Lua 문법 -함수Lua 문법 -함수
Lua 문법 -함수
 
Lua 문법
Lua 문법Lua 문법
Lua 문법
 
(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3
 
2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
[C++ korea] effective modern c++ study item8~10 정은식
[C++ korea] effective modern c++ study item8~10 정은식[C++ korea] effective modern c++ study item8~10 정은식
[C++ korea] effective modern c++ study item8~10 정은식
 
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...
 
C++20 Key Features Summary
C++20 Key Features SummaryC++20 Key Features Summary
C++20 Key Features Summary
 
2. c언어의 기본
2. c언어의 기본2. c언어의 기본
2. c언어의 기본
 

Viewers also liked

La porta de l'aire
La porta de l'aireLa porta de l'aire
La porta de l'airesiseA
 
Bovinos enfermedades que provocan abortos
Bovinos enfermedades que provocan abortosBovinos enfermedades que provocan abortos
Bovinos enfermedades que provocan abortosrazasbovinasdecolombia
 
Situación de aprendizaje
Situación de aprendizajeSituación de aprendizaje
Situación de aprendizajeServando Chavez
 
Laura mulvey theory shan and wasay
Laura mulvey theory shan and wasayLaura mulvey theory shan and wasay
Laura mulvey theory shan and wasaySyed Shan Tariq
 
Whte Paper: Using aws for disaster recovery
Whte Paper:  Using aws for disaster recoveryWhte Paper:  Using aws for disaster recovery
Whte Paper: Using aws for disaster recoveryPBTAdvantage
 
21st Century/Group Project
21st Century/Group Project21st Century/Group Project
21st Century/Group Projectdingess60
 
Meritorious and Glorious Service at ICAI, New Delhi
Meritorious and Glorious Service at ICAI, New DelhiMeritorious and Glorious Service at ICAI, New Delhi
Meritorious and Glorious Service at ICAI, New DelhiSamuel Ernest
 
Richard Cramer 2014 euro QSAR presentation
Richard Cramer 2014 euro QSAR presentationRichard Cramer 2014 euro QSAR presentation
Richard Cramer 2014 euro QSAR presentationCertara
 
Beef cattle recording and selection (australia)
Beef cattle recording and selection (australia)Beef cattle recording and selection (australia)
Beef cattle recording and selection (australia)razasbovinasdecolombia
 
Basics of guitar ci 350 1
Basics of guitar ci 350 1Basics of guitar ci 350 1
Basics of guitar ci 350 1dingess60
 

Viewers also liked (20)

La porta de l'aire
La porta de l'aireLa porta de l'aire
La porta de l'aire
 
Bovinos enfermedades que provocan abortos
Bovinos enfermedades que provocan abortosBovinos enfermedades que provocan abortos
Bovinos enfermedades que provocan abortos
 
Situación de aprendizaje
Situación de aprendizajeSituación de aprendizaje
Situación de aprendizaje
 
Laura mulvey theory shan and wasay
Laura mulvey theory shan and wasayLaura mulvey theory shan and wasay
Laura mulvey theory shan and wasay
 
Ciencias
CienciasCiencias
Ciencias
 
Owasp top 10
Owasp top 10  Owasp top 10
Owasp top 10
 
Camera shots and angles
Camera shots and anglesCamera shots and angles
Camera shots and angles
 
Shot list
Shot listShot list
Shot list
 
Aparato digestivo
Aparato digestivoAparato digestivo
Aparato digestivo
 
Whte Paper: Using aws for disaster recovery
Whte Paper:  Using aws for disaster recoveryWhte Paper:  Using aws for disaster recovery
Whte Paper: Using aws for disaster recovery
 
Daily routine
Daily routineDaily routine
Daily routine
 
Presentation - Tim Marrs
Presentation - Tim MarrsPresentation - Tim Marrs
Presentation - Tim Marrs
 
21st Century/Group Project
21st Century/Group Project21st Century/Group Project
21st Century/Group Project
 
Meritorious and Glorious Service at ICAI, New Delhi
Meritorious and Glorious Service at ICAI, New DelhiMeritorious and Glorious Service at ICAI, New Delhi
Meritorious and Glorious Service at ICAI, New Delhi
 
Richard Cramer 2014 euro QSAR presentation
Richard Cramer 2014 euro QSAR presentationRichard Cramer 2014 euro QSAR presentation
Richard Cramer 2014 euro QSAR presentation
 
HaTrongDuong
HaTrongDuongHaTrongDuong
HaTrongDuong
 
Bdc brand v2
Bdc brand v2Bdc brand v2
Bdc brand v2
 
Beef cattle recording and selection (australia)
Beef cattle recording and selection (australia)Beef cattle recording and selection (australia)
Beef cattle recording and selection (australia)
 
Basics of guitar ci 350 1
Basics of guitar ci 350 1Basics of guitar ci 350 1
Basics of guitar ci 350 1
 
Manual de establecimiento de pasturas
Manual de establecimiento de pasturasManual de establecimiento de pasturas
Manual de establecimiento de pasturas
 

Similar to 코딩인카페 C&JAVA 기초과정 C프로그래밍(2)

C수업자료
C수업자료C수업자료
C수업자료koominsu
 
게임프로그래밍입문 3주차
게임프로그래밍입문 3주차게임프로그래밍입문 3주차
게임프로그래밍입문 3주차Yeonah Ki
 
3 2. if statement
3 2. if statement3 2. if statement
3 2. if statement웅식 전
 
[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성
[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성
[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성Lee Sang-Ho
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초진수 정
 
게임프로그래밍입문 4주차
게임프로그래밍입문 4주차게임프로그래밍입문 4주차
게임프로그래밍입문 4주차Yeonah Ki
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01seonhyung
 
자료구조 프로젝트
자료구조 프로젝트자료구조 프로젝트
자료구조 프로젝트hyungoh kim
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2KoChungWook
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
7주 JavaScript Part1
7주 JavaScript Part17주 JavaScript Part1
7주 JavaScript Part1지수 윤
 
02장 자료형과 연산자
02장 자료형과 연산자02장 자료형과 연산자
02장 자료형과 연산자웅식 전
 
150709 알고리즘문제풀이팁
150709 알고리즘문제풀이팁150709 알고리즘문제풀이팁
150709 알고리즘문제풀이팁Ju-ri Seo
 
Java Calculator.pdf
Java Calculator.pdfJava Calculator.pdf
Java Calculator.pdftangtang1026
 
객체지향 정리. Part1
객체지향 정리. Part1객체지향 정리. Part1
객체지향 정리. Part1kim HYUNG JIN
 

Similar to 코딩인카페 C&JAVA 기초과정 C프로그래밍(2) (20)

C수업자료
C수업자료C수업자료
C수업자료
 
게임프로그래밍입문 3주차
게임프로그래밍입문 3주차게임프로그래밍입문 3주차
게임프로그래밍입문 3주차
 
3 2. if statement
3 2. if statement3 2. if statement
3 2. if statement
 
튜터링 #9 20120409
튜터링 #9 20120409튜터링 #9 20120409
튜터링 #9 20120409
 
[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성
[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성
[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성
 
04. 조건문
04. 조건문04. 조건문
04. 조건문
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
 
게임프로그래밍입문 4주차
게임프로그래밍입문 4주차게임프로그래밍입문 4주차
게임프로그래밍입문 4주차
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
 
자료구조 프로젝트
자료구조 프로젝트자료구조 프로젝트
자료구조 프로젝트
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
06장 함수
06장 함수06장 함수
06장 함수
 
7주 JavaScript Part1
7주 JavaScript Part17주 JavaScript Part1
7주 JavaScript Part1
 
Python 1day
Python 1dayPython 1day
Python 1day
 
02장 자료형과 연산자
02장 자료형과 연산자02장 자료형과 연산자
02장 자료형과 연산자
 
150709 알고리즘문제풀이팁
150709 알고리즘문제풀이팁150709 알고리즘문제풀이팁
150709 알고리즘문제풀이팁
 
C review
C  reviewC  review
C review
 
Java Calculator.pdf
Java Calculator.pdfJava Calculator.pdf
Java Calculator.pdf
 
객체지향 정리. Part1
객체지향 정리. Part1객체지향 정리. Part1
객체지향 정리. Part1
 

코딩인카페 C&JAVA 기초과정 C프로그래밍(2)

  • 2. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 2 C 프로그래밍 (2)식과 연산자 식(expression) 구조 식의 값과 출력 C언어 식(expression) 구성 - 식(expression) : 컴퓨터에서 여러 가지 처리를 ‘계산’으로 실행, 코드 안에서 식의 계산으로 표현됨 - 연산자(operator) : 연산하는 방식 - 피연산자(operand) : 연산의 대상 - 식의 평가 : 식의 결과 값 도출 연산자와 피연산자의 조합 int num1 = 2; int num2 = 3; int sum = num1+num2; printf(“1+2는 %d입니다. n”, 1+2); printf(“3X4는 %d입니다. n”, 3*4); printf(“num1+num2의 값은 %d n”, sum); num1 = num1 + 1; printf(“num1에 1을 더한 값은 %d n”, num1); 1 2 3 + 평가 피연산자 피연산자 연산자 식 1+2는 3입니다. 3x4는 12입니다. num1+num2의 값은 5입니다. num1에 1을 더한 값은 3입니다. 다양한 연산 실행한 결과
  • 3. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 3 연산자의 종류 기호 이름 단항 기호 이름 단항 + 덧셈 >= 이상 - 뺄셈 < 미만 * 곱셈 <= 이하 / 나눗셈 == 등가 % 나머지 != 비등가 +X 단항 + 단항 ! 논리 부정 단항 -X 단항 - 단항 && 논리곱 ~ 보수 단항 || 논리합 & 비트 논리곱 * 간접 참조 단항 | 비트 논리합 , 순차 ^ 비트 배타적 논리합 ( ) 함수 호출 단항 = 대입 ( ) 캐스트 단항 << 좌 시프트 [ ] 인덱스, 배열 첨자 단항 >> 우 시프트 . 멤버 참조(dot) ++ 증가 단항 -> 멤버 간접참조 (arrow) -- 감소 단항 ? : 조건 > 보다 크다 sizeof 크기 단항 ★ 단항 표시 이외의 모든 연산자는 이항 연산자임 C 프로그래밍 (2)
  • 4. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 4 C 프로그래밍 (2)증감 연산자 증가 연산자(++) 감소 연산자(--) int a = 0, b = 0; b = a++; printf(“대입 후에 증가했기 때문에 b의 값은 %d입니다. n”, b); b = ++a; printf(“대입 전에 증가했기 때문에 b의 값은 %d입니다. n”, b); 대입 후에 증가했기 때문에 b의 값은 0입니다. 대입 전에 증가했기 때문에 b의 값은 2입 니다. 실행한 결과 a++; ++a; a = a+1;== int a = 2, b = 0; b = a--; printf(“대입 후에 증가했기 때문에 b의 값은 %d입니다. n”, b); b = --a; printf(“대입 전에 증가했기 때문에 b의 값은 %d입니다. n”, b); 대입 후에 증가했기 때문에 b의 값은 2입니다. 대입 전에 증가했기 때문에 b의 값은 0입 니다. 실행한 결과 a--; --a; a = a-1;==
  • 5. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 5 C 프로그래밍 (2)대입 연산자 복합 대입 연산자 덧셈 대입 연산자 예시코드 int sum = 0, num = 0; printf(“1번째 정수를 입력하세요. n”); scanf(“%d”, &num); sum += num; printf(“2번째 정수를 입력하세요. n”); scanf(“%d”, &num); sum += num; printf(“2가지 수의 합계는 %d입니다. n”, sum); 1번째 정수를 입력하세요. 1 [enter] 2번째 정수를 입력하세요. 3 [enter] 2가지 수의 합계는 4입니다. 실행한 결과 기호 이름 += 덧셈 대입 -= 뺄셈 대입 *= 곱셈 대입 /= 나눗셈 대입 %= 나머지 대입 &= 논리곱 대입 ^= 배타적 논리합 대입 |= 논리합 대입 <<= 좌 시프트 대입 >>= 우 시프트 대입 a += b; a = a+b;==
  • 6. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 6 C 프로그래밍 (2)시프트(shift) 연산자 왼쪽 시프트 연산자(<<) 오른쪽 시프트 연산자(>>) 5<<2 의 연산(short int형 2byte=16bit) 5 0000000000000101 << 2 ------------------------------- 20 0000000000010100 좌변의 값이 5, 우변의 값이 2인 경우, 5 << 2 => 5 x (2 ^ 2) => 5의 4배 => 20 연산의 의미 좌변의 값을 우변에서 지정한 자릿수 만큼 왼쪽으로 이동시키고, 초과한 자릿수 만큼 오른쪽 끝자리부터 0을 채우는 연산 2자릿수 만 큼 왼쪽 이 동, 오른쪽 끝자리 0을 채움 5>>2 의 연산(short int형 2byte=16bit) 5 0000000000000101 >> 2 ------------------------------- 1 0000000000000001 좌변의 값이 5, 우변의 값이 2인 경우, 5 >> 2 => 5 / (2 ^ 2) => 5의 1/4배 => 1 연산의 의미 좌변의 값을 우변에서 지정한 자릿수 만큼 오른쪽으로 이동시키고, 초과한 자릿수 만큼 왼쪽 끝자리부터 0을 채 우는 연산 2자릿수 만 큼 오른쪽 이동, 왼쪽 끝자리 0을 채움 ★ 컴퓨터 내부에서는 2진수를 취급하기 때문에 일반적인 사칙연산보다 주로 시프트 연산을 사용
  • 7. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 7 C 프로그래밍 (2) ㅑ 캐스트 연산자 형 변환 예시코드 double dnum; int inum; dnum = 160.5; printf(“키는 %f cm입니다. n”, dnum); printf(“int형 변수에 대입합니다. n”); inum = (int) dnum; printf(“키는 %d cm입니다. n”, inum); 키는 160.500000 cm입니다. int 형 변수에 대입합니다. 키는 160 cm 입니다. 실행한 결과 구문 : ( 데이터 형 ) 식 지정한 식의 형을 ( ) 내에서 지정한 형으로 변환, 형 변환을 코드 내에 명시적으로 표기 int형 dnum inum double형 int 형으로 변환 캐스트 연산자(명시적 형 변환) inum = (int) dnum 대입할 때 크기가 작은 형으로 변환됨
  • 8. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 8 C 프로그래밍 (2)연산과 형 변환 서로 다른 형의 연산 동일한 형의 연산 int d = 2; double pi = 3.14; printf(“지름이 %d cm인 원의 n“, d); printf(“원둘레는 %f cm입니다. n“, d*pi); 지름이 2 cm인 원의 원둘레는 6.280000 cm입니다. 실행 결과 한쪽의 피연산자를 크기가 큰 쪽으로 형 변환 후 연산을 처리 int num1=5, num2=4; double div; div = num1/num2; printf(“5/4는 %f입니다. n”, div); div = (double)num1/(double)num2; printf(“5/4는 %f입니다. n”, div); 5/4는 1.000000입니다. 5/4는 1.250000입니다. 실행 결과 동일한 형의 피연산자들을 연산할 때 결과 값이 피연산자와 동일한 형인 경우와 다른 형인 경우를 고려하여 피연산자를 변환하여 연산 필요함 int형 d의 값 ‘2’가 double형 값 ‘2.0’으로 변환된 후 곱셈 실행 5÷4 결과 int형 1값 5÷4의 예상 결과는 1.25이었으므로 피연사자들을 double형으로 캐스팅하여 계산함
  • 9. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 9 C 프로그래밍 (2)관계 연산자와 조건 조건의 개념과 표기 5 > 3 : 이 조건의 평가는 ‘참’이다. 5 < 3 : 이 조건의 평가는 ‘거짓’이다. a == 6 : 이 조건은 변수 a 값에 따라 결정 (a가 6이면 참, 6이외 다른 수면 거짓) ※ ==와 = 다른 기호임, ‘=‘는 대입연산자 관계 연산자 < 조건의 식 > 3 > 1 : 3은 1보다 크기 때문에 이 부등식은 ‘맞다’ 또는 ‘참’이라고 평가 3 < 1 : 이 부등식 ‘틀리다’ 또는 ‘거짓' 이라고 평가 참(true), 거짓(false) 두 가지 값 중에 하나로 표현한 것을 C언에서는 ‘조건'이라고 합니다. 그 조건이 ‘맞다‘ 또는 ‘틀리다'라는 것을 나타내는 것 3 1 참 > 평가 식 3 1 거짓 <조건 연산자 식이 참인 경우 == 우변이 좌변과 같다 != 우변이 좌변과 같지 않다 > 우변보다 좌변이 크다 >= 우변보다 좌변이 크거나 같다 < 우변보다 좌변이 작다 <= 우변보다 좌변이 작거나 같다
  • 10. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 10 C 프로그래밍 (2) if문 구조 if문 예시코드 int res; printf(“정수를 입력하세요. n”); scanf(“%d”, &res); if(res == 1) printf(“1이 입력되었습니다.n”); printf(“처리를 종료합니다. n”); 정수를 입력하세요. 1 [enter] 1이 입력되었습니다. 처리를 종료합니다. 참인 경우 if 구문 if(조건) 문; 1이 입력되면 조건은 참이 되고 아래의 문이 처리 조건 판단문(if문) if - ‘조건’의 값(참 또는 거 짓)에 따라 처리가 이 루어지는 구문 - 조건이 참이면 아래의 지정한 문이 처리 조건 문 참 거짓 정수를 입력하세요. 10 [enter] 처리를 종료합니다. 거짓인 경우
  • 11. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 11 C 프로그래밍 (2) if ~ else문 구조 if ~ else문 예시코드 int res; printf(“정수를 입력하세요. n”); scanf(“%d”, &res); if(res == 1) { printf(“1이 입력되었습니다.n”); } else { printf(“1 이외의 값이 입력되었습니다.n”); } 정수를 입력하세요. 1 [enter] 1이 입력되었습니다. 참인 경우 if(조건){ 문1; 문2; } else { 문3; 문4; } 1이 입력되면 if 문 아래 구문이 처리되고 그 외의 값이 들어오면 else 아래 구문 처리 조건 판단문(if ~ else 문) - 조건이 참이면 문1을 처리하고, 거짓이면 문2를 처리함 - 이 구문도 { }로 묶어서 복수의 문 처리 가능 조건 문2 참거짓 정수를 입력하세요. 10 [enter] 1 이외의 값이 입력되 었습니다. 거짓인 경우 문1 문4 문3
  • 12. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 12 C 프로그래밍 (2) if ~ else if ~ else문 구조 if ~ else if ~ else문 예시코드 int res; printf(“정수를 입력하세요. n”); scanf(“%d”, &res); if(res == 1) { printf(“1이 입력되었습니다.n”); } else if(res == 2){ printf(“2가 입력되었습니다.n”); } else { printf(“1이나 2를 입력하세요.n”); } 정수를 입력하세요. 1 [enter] 1이 입력되었습니다. 1 입력 경우 if(조건1){ 문1; 문2; } else if(조건2){ 문3; 문4; } else { … } 조건 판단문(if ~ else if ~ else 문) - 두 가지 이상의 조건에 따른 처리 가능 - 조건1 참이면 아래 구문 처리, 거짓이면 다음 조 건을 판단하고 모든 조 건이 거짓이면 else 아 래의 문이 처리 정수를 입력하세요. 2 [enter] 2가 입력되었습니다. 2 입력 경우 조건1 참 거짓 문 거짓 조건2 문 문 참 정수를 입력하세요. 3 [enter] 1이나 2를 입력하세요. 1, 2 이외 입력 경우
  • 13. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 13 C 프로그래밍 (2) switch문 구조 switch문 순서도 switch(식){ case 상수1: 문1; … break; case 상수2: 문2; … break; default: 문D; … break; } 조건 판단문(switch 문) - switch문 안의 식이 case 상수 값과 일 치하면, 아래의 문 부터 ‘break’까지 처 리됨. 만약 어느 case 상수 값과도 일치하지 않는다면 ‘default’아래의 문이 처리됨 - switch문을 이용하 면 식과 case 상수 를 비교하여 if~else if~else 구문 보다 간단하게 표기할 수 있음 case1: switch 문 default: case2: 문 문
  • 14. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 14 논리 연산자 연산자 참이 되는 경우 평가 좌 우 전체 && 좌변과 우변이 모두 참일 때 거짓 거짓 거짓 거짓 참 거짓 참 거짓 거짓 참 참 참 || 좌변과 우변 중 한쪽이 참일 때 거짓 거짓 거짓 거짓 참 참 참 거짓 참 참 참 참 ! 우변이 거짓일 때 거짓 참 참 거짓 C 프로그래밍 (2) 5>3 && 3==4 a==6 || a>=12 !(a==6) 5>3 식은 참이고 3==4 식은 거짓이며 참 && 거짓 연산 결과는 거짓입니다. 변수 a의 값이 6 또는 12 이상일 때 참이 됩니다. 변수 a의 값이 6이 아닐 때 참이 됩니다.
  • 15. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 15 C 프로그래밍 (2)조건 연산자 ans = (res==1) ? ‘A’ : ‘B’ 참일 경우 ans = ‘A’ 거짓일 경우 ans = ‘B’ 조건 연산자 조건 연산자 예시 코드 - 조건 연산자를 사용하면 간단한 조건에 따른 처리를 할 수 있다. - 조건 연산자는 세 개의 피연산자를 가진다. - 전체 식의 값은 조건이 참일 때 식 1 의 값, 거짓일 때 식 2의 값이 됩니다. 조건 ? 참이면 식1 : 거짓이면 식2 int res; char ans; printf(“몇 번째를 선택할까요? n”); printf(“정수를 입력하세요. n”); scanf(“%d”, &res); ans = (res==1) ? ‘A’ : ‘B’; printf(“%c 코스를 선택했습니다. n”, ans); 몇 번째를 선택할까요? 정수를 입력하세요. 1 [enter] A코스를 선택했습니다. ‘1’ 입력 결과 몇 번째를 선택할까요? 정수를 입력하세요. 2 [enter] B코스를 선택했습니다. ‘2’ 입력 결과
  • 16. YONSEI COMPUTER SCIENCE ACADEMY Coding in CAFÉ 16 본 자료는 코딩인카페 1기 C&JAVA 기초과정 5회차 자료 중 일부를 발췌한 내용입니다. < 참고자료 > - 그림으로 배우는 C프로그래밍, 마나 다카하시, 영진닷컴.