3일 차 글 쓴 지 얼마 안 된 것 같지만 어느덧 또 4일 차다 ^_^
사실 날짜만 보면 오늘은 5일차를 올려야 하는 거지만...
밀려버렸으니 어쩔 수 없다...
오늘부터는 새로운 챕터를 공부하게 된다!
따라서 새로운 게임 예제가 나오게 되는데... 예제가 바로 피라미드 쌓기
1학년 수업 때 별 쌓기 못해서 전공 드랍하는 동기들이 엄청 많았는데
ㅠㅠㅋㅋㅋㅋㅋㅋㅋㅋ 뭔가 추억이다
사실 나도 예외는 아님
조금 더 버티긴 했지만 별 쌓기부터가 솔직히 고역이었다
이번엔 꼭 마스터 할 수 있기를...
반복문에 대해 학습하기 전 연산자의 개념을 먼저 알아본다.
프로그램에서 연산 작업을 처리하기 위해 사용하는 기호를 연산자Operator라고 한다.
대입연산자(=), 산술연산자(+,-,*,/,%) 등 여러 연산자가 존재한다.
#include <stdio.h>
int main(void) {
int a = 10;
printf("a는 %d\n", a);
a = a + 1;
printf("a는 %d\n", a);
return 0;
}
위의 예문에서는 a의 값을 1 증가시키기 위해 a = a + 1; 이라는 코드를 사용하고 있는데,
이처럼 연산자를 두 개 사용하지 않고 ++연산자를 사용해도 된다.
따라서, 위의 코드를 다음과 같이 고칠 수 있다.
#include <stdio.h>
int main(void) {
int a = 10;
printf("a는 %d\n", a);
// a = a + 1;
a++;
printf("a는 %d\n", a);
return 0;
}
이를 통해 ++ 연산자는
'변수에 1을 더해 다시 변수에 넣는' 역할을 한다는 것을 알 수 있다.
이어서 예제를 한 개 더 살펴본다.
#include <stdio.h>
int main(void) {
int b = 20;
printf("b는 %d\n", ++b);
printf("b는 %d\n", b++);
printf("b는 %d\n", b);
return 0;
}
실행 결과를 살펴보면 첫번째 printf()와 두 번째의 값이 같은데,
이는 ++ 연산자의 위치에 따라 연산 순서가 달라지기 때문이다.
++b처럼 연산자가 변수 앞에 있을 때를 전위라고 하고,
전위일 때는 연산을 마친 후에 작업을 수행한다.
b++처럼 연산자가 변수 뒤에 있을 때는 후위라고 하고,
작업을 마친 다음 연산을 수행하고, 이후 다음 줄로 넘어간다.
즉, 첫번째 printf()문은 ++b 이기 때문에 연산 작업을 마친 후 값을 출력해 21이 나왔다.
하지만 두번째 printf()는 b++ 이기 때문에 현재 값을 출력한 후 연산을 시작해 출력값이 21이다.
마지막 printf()는 연산이 없으므로, b++의 연산이 끝난 값인 22가 출력된다.
아래로는 C언어에서 자주 사용하는 연산자를 표로 정리해 보았다.
구분 | 연산자 | 설명 |
산술 연산자 | + | A+B |
- | A-B | |
* | AxB | |
/ | A/B | |
% | A/B의 나머지 | |
대입 연산자 | = | 오른쪽 값을 왼쪽에 대입 |
+= | 둘을 더한 뒤 왼쪽에 대입 | |
-= | 둘을 뺀 뒤 왼쪽에 대입 | |
*= | 둘을 곱한 뒤 왼쪽에 대입 | |
/= | 둘을 나눈 뒤 왼쪽에 대입 | |
%= | 둘을 나눈 나머지 값을 왼쪽에 대입 | |
증감 연산자 | ++a | a의 값 1 증가 후 연산 진행 |
a++ | 연산한 후 a의 값 1 증가 | |
--a | a의 값 1 감소 후 연산 진행 | |
a-- | 연산한 후 a의 값 1 감소 | |
비교 연산자(관계 연산자) | < | 왼쪽 값이 오른쪽 값보다 작은가? |
> | 왼쪽 값이 오른쪽 값보다 큰가? | |
<= | 왼쪽 값이 오른쪽 값보다 작거나 같은가? | |
>= | 왼쪽 값이 오른쪽 값보다 크거나 같은가? | |
== | 왼쪽 값과 오른쪽 값이 같은가? | |
!= | 왼쪽 값과 오른쪽 값이 다른가? | |
논리 연산자 | && | 왼쪽과 오른쪽이 모두 참이면 참, 하나라도 거짓이면 거짓 (= and) |
|| | 왼쪽 혹은 오른쪽 중 하나라도 참이면 참, 모두 거짓이면 거짓 (= or) | |
! | 피연산자가 참이면 거짓, 거짓이면 참 |
반복문은 같은 문장을 반복해서 수행하게 하는 명령문이다.
반복문의 종류에는 for문, while문, do while문이 있다.
1. for문
for(선언; 조건; 증감){
//수행할 문장
}
for문은 다음과 같은 형식으로 작성된다.
for라는 키워드로 시작하고, 소괄호 안에 선언, 조건, 증감 부분이 있다.
이후 중괄호 안에 수행할 문장이 들어 있다.
for문은 변수를 선언하고 초기화한 후 변수의 조건을 확인하고,
조건에 해당하면 중괄호 안의 문장을 수행한 다음 변수의 값을 증감한다.
이후 다시 조건을 확인하는 순서로 진행된다.
2. while문
선언;
while(조건) {
//수행할 문장(증감 포함)
}
while문은 이와 같은 형식으로 작성된다.
3. do-while문
선언;
do{
//수행할 문장
} while(조건);
do-while문은 위의 예제처럼 작성된다.
while문과 do-while문은 비슷한 구조로 작성되어 있지만,
do-while문은 일단 무조건 한 번은 문장을 수행한 후 조건을 확인하지만,
while문은 조건을 먼저 확인한 후 문장을 수행한다는 점에서 차이가 있다.
while문은 조건에 따라 아예 문장을 실행하지 않을 수도 있지만, do-while문은 그렇지 않다.
같은 예제를 통해 다양한 반복문의 종류를 학습했는데,
이 과정이 정말 이해가 잘 되고 쏙쏙 박혀서 신기했다.
특히 do-while 문에 대한 내용은 배워본 적이 없었어서 생소하게 느껴졌다!
지금 몰아 공부한 내용 따라잡으려면 아마
오늘 낮에도 꽤 많은 시간을 공부에 써야 할 것 같다
이젠 밀리는 일 없게 꼬박꼬박 그날 공부를 해야겠다...
오늘의 공부 끝!
'Programming > C, C++' 카테고리의 다른 글
코딩 자율 학습단 6일차 - 조건문과 break (1) | 2024.06.30 |
---|---|
코딩 자율 학습단 5일차 - 이중 반복문 (0) | 2024.06.21 |
코딩 자율 학습단 3일차 - 출력하기, 입력받기 (0) | 2024.06.20 |
코딩 자율 학습단 2일차 - 변수, 상수 (0) | 2024.06.18 |
코딩 자율 학습단 1일차 - 첫번째 C 프로그램 작성하기 (0) | 2024.06.17 |