연산자
연산자란 정적인 데이터들을 유기적으로 행동하여 새로운 가치를 창출해 내는 것을 말하며 우리가 많이 아는 산술연산자도 여기에 포함이 되며 산술연산자뿐만 아니라 대입연산자, 부호연산자, 증감연산자, 관계연산자, 논리연산자, 비트연산자 등이 존재합니다.
산술연산자
사칙연산을 말하며 일상에서 가장 많이 사용되는 연산자입니다.
종류 | 의미 | 예시 |
+ | 부호의 왼쪽과 오른쪽의 값을 더한다 | 1 + 2 = 3 |
- | 부호의 왼쪽 값에서 오른쪽 값을 뺀다. | 5 - 2 = 3 |
* | 부호의 왼쪽 값에서 오른쪽 값을 곱한다. | 2 * 3 = 6 |
/ | 부호의 왼쪽 값을 오른쪽 값으로 나눈다. | 6 / 2 = 3 |
% | 부호의 왼쪽 값에서 오른쪽 값으로 나눈 값의 나머지를 반환한다. | 3 % 2 = 1 |
대입연산자
대입 연산자는 오른쪽에 부호의 오른쪽 값을 왼쪽에 대입하는 역할을 합니다. 이때 대입연산자와 산술연산자를 혼용해서 사용하기도 합니다.
종류 | 의미 | 예시 |
= | 부호의 왼쪽에 오른쪽 값을 대입한다. | a = 1 |
+= | 부호의 왼쪽과 오른쪽의 값을 더한 값을 대입한다. | a += 3 ▶️ a = a + 3 |
-= | 부호의 왼쪽 값에서 오른쪽 값을 뺀 값을 대입한다. | a -= 3 ▶️ a = a - 3 |
*= | 부호의 왼쪽 값에서 오른쪽 값을 곱한 값을 대입한다. | a *= 2 ▶️ a = a * 2 |
/= | 부호의 왼쪽 값을 오른쪽 값으로 나누고 그 값을 대입한다. | a /= 2 ▶️ a = a / 2 |
%= | 부호의 왼쪽 값에서 오른쪽 값으로 나눈 값의 나머지를 대입한다. | a %= 2 ▶️ a = a % 2 |
a = b는 평소에 a와 b는 같다 라고 할 때 쓰이는 부호인데 대입연산자에서는 b를 a에 대입한다는 뜻으로 등호를 나타낼 때는 =가 아니라 ==를 사용합니다.
증감연산자
증감연산자는 증가연산자와 감소연산자의 줄임말인데요. 이때 증가 / 감소 값은 1로 고정되어 있습니다.
종류 | 의미 | 예시 |
++a | a값을 먼저 1 증가시키고 연산을 진행 | |
a++ | 연산을 한 a 값에 1 증가 | |
--a | a값을 먼저 1 감소 시키고 연산을 진행 | |
a-- | 연한을 한 a 값에 1 감소 |
관계연산자
관계연산자는 두개의 값의 관계를 따지는 연산자입니다. 이때 결과로 boolean값이 반환이 됩니다.
종류 | 의미 | 예시 |
== | 부호의 왼쪽에 오른쪽 값이 같다 | a == b |
!= | 부호의 왼쪽과 오른쪽의 값이 같지 않다. | a != b |
> | 부호의 왼쪽 값이 오른쪽 값보다 크다. | a > b |
< | 부호의 왼쪽 값이 오른쪽 값보다 작다. | a < b |
>= | 부호의 왼쪽 값이 오른쪽 값과 크거나 같다. | a >= b |
<= | 부호의 왼쪽 값이 오른쪽 값과 작거나 같다. | a <=b |
논리연산자
논리연산자는 두개의 조건식을 결합하여 하나의 결과를 만들어내는 연산자입니다.
종류 | 의미 | 예시 |
! | 이 연산자는 조건식 결과의 반대를 말합니다. (ex. a = true, !a = false) |
!a |
&& | 두 조건식이 참이어야 true 값을 반환합니다. | a && b |
|| | 두 조건식 중에 하나만 참이어도 true 값을 반환합니다. | a || b |
분기문 ( 조건문 )
분기는 쉽게 말해 나눈다는 말인데요. 조건식을 기준으로 분기 처리를 하는 것입니다.
조건문 형태
조건문은 크게 if, else if, else로 나뉘는데요, 첫 조건식은 무조건 if 안에 들어가고 조건식이 여러 개일 경우 else if를 이용하여 새로운 조건식을 사용할 수도 있고, else를 이용하여 if 조건식이 아닐 때 수행 코드를 작성하기도 합니다. 이때 이 조건식은 대게 관계연산자를 사용하여 참과 거짓으로 정의합니다.
// 기본 if문
if( 조건식 ) {
수행 코드...
}
//if...else 문
if( 조건식 ) {
수행 코드...
} else {
조건식이 거짓일 때 수행 코드...
}
//if...else if... else문
if( 조건식 ) {
수행 코드...
} else if (조건식B ){
수행 코드...
} else {
조건식A, 조건식B 둘다 거짓일 때 수행 코드...
}
else를 사용하지 않고 if문만 계속 사용을 하게 되면 똑같은거 아닌가 생각이 들 수도 있는데요.
int a = 4;
if (a > 3) {
printf("a는 3보다 크다");
}
if (a < 3) {
printf("a는 3보다 작다");
}
printf("a는 3이다")
이때 출력되는 값이 "a는 3보다 크다", "a는 3이다"가 출력이 됩니다. 이때 여러개가 출력이 되는 이유는 if조건문이 일치하면 아래 if문을 시행하지 않는 게 아니라 계속 if문을 시행하기 때문에 a가 3보다 큰걸 인지했어도 a가 3보다 작은지 확인 후에 마지막 printf까지 출력을 하는 것입니다. 이런 상황이 발생하는 것을 막기 위해서 else와 else if가 존재합니다. 위의 조건식을 else와 else if를 이용한다면 아래와 같은 조건식을 쓸 수 있습니다.
int a = 4;
if(a > 3){
printf("a는 3보다 크다");
} else if (a < 3) {
printf("a는 3보다 작다");
} else { //a가 3보다 크지도 작지도 않을 때
printf("a는 3이다");
}
반복문
반복문은 크게 while과 for문으로 나뉩니다. 기본적으로 반복문은 반복 조건이 일치할때 계속 반복 실행 코드를 수행합니다. 반복 조건을 만족하지 않으면 반복문을 빠져나가게 됩니다.
while문 형태
while(반복조건) {
반복 실행 코드...
증감;
}
for 문 형태
for (초기화; 조건; 증감){
반복 실행 코드 ...
}
for 문은 초기값 > 조건 > 반복실행코드 > 증감 > 조건 > 반복실행코드... 순으로 진행하며 조건 > 반복 실행 코드 > 증감이 조건값이 false일 때까지 반복을 합니다.
break와 continue
반복문 내부에서 특정조건이 됐을때 break와 continue를 만날 수 있습니다. 이때 break를 만나면 반복문에서 빠져나가게 되고 continue를 만나면 continue 아래의 코드들을 무시한 채 다음 반복문을 실행하게 됩니다.
무한루프
무한루프는 반복문이 무한하게 일허나는 것을 의미하는데요 대게 무한루프는 조건이 일치할 때를 기준으로 break나 return을 이용하여 빠져나오게 설계가 되어있습니다.
예시 ) 메모장
우리가 메모장에 언제 입력 할지 모르기 때문에 입력이 되기 전부터 된 후까지도 계속 이벤트가 발생을 하는지 무한으로 감시하고, 닫기를 통해서 나가게 되면 이때 break나 return을 통해 무한루프에서 빠져나오게 로직이 짜여있습니다.
'프로그래밍📚' 카테고리의 다른 글
사용자 정의 타입이란? - 공용체와 enum (0) | 2024.02.05 |
---|---|
사용자 정의 타입이란? - 구조체 (0) | 2024.02.05 |
함수포인터란? (0) | 2024.02.04 |
함수와 배열, 포인터 개념알기 (0) | 2024.01.29 |
변수와 상수 그리고 자료형 (0) | 2024.01.22 |