일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 풀스택
- Customer service 구현
- BOJ
- 서버
- 프로그래머스
- 장고
- AI Tech
- 프로그래밍
- 서블릿
- 파이썬
- Naver boostcourse
- 백엔드
- 웹
- 4기
- 백준
- 대회
- P Stage
- 웹 프로그래밍
- QNA 봇
- 2021 Dev-matching 웹 백엔드 개발자
- boostcourse
- Django
- 레벨2
- Naver boostcamp
- sts
- 네이버
- 부스트캠프
- cs50
- AI Tech 4기
- 구현
- Today
- Total
daniel7481의 개발일지
[CS50] C(2) 본문
3. 조건문과 루프
변수를 선언하고 '='라는 기호를 사용하여 값을 할당해준다. 이 때 컴퓨터에게 할당해주는 값의 종류 또한 같이 선언해줘야 한다는 것을 지난 강의에서 배웠다. 이번엔 int(integer, 정수) 변수를 선언해보자.
int counter = 0;
이 때 '='(equal to)기호는 counter가 0이랑 같다가 아닌, 등호 오른쪽에 있는 값을 왼쪽에 있는 값에 할당한다라고 이해해야 한다. 이제 counter 변수에다가 1을 더해보자
counter = counter + 1;
산수를 배운 사람이라면 이 식이 거짓이라고 생각할 것이다. 그러나 앞에서 얘기했듯이 둘의 값이 같다는 의미가 아니다. 이제 counter 변수에는 counter + 1값이 할당된 것이다. 이때 위에서 이미 counter의 자료형을 선언하였으므로 다시 선언할 필요는 없다. 또한 이 방법 또한 있다.
counter += 1;
counter ++
세 가지 연산 모두 같은 의미이다.
3.1 조건문
~조건이 참이면, ~를 해라. 이러한 명령을 내리는 문을 조건문이라고 한다. c언어는 if문을 사용한다.
if(x < y)
{
print('x is less than y\n';
}
작업문이 두 줄 이상 넘어가면 {}를 띄워서 사용한다. 이제 조건문이 한 개 뿐 아니라 여러개 일 수 있다.
if(x < y)
{
print('x is less than y\n');
}
else if(x > y)
{
print('x is greater than y\n');
}
else if(x == y)
{
print('x is equal to y\n';
}
여기서 새로 보이는 기호가 있다. '=='은 과연 무엇일까? 앞에서 =은 할당 연산자라고 소개한 바 있다. 그러면 수학 기호에서 등호로 쓰이는 '='는 어떻게 나타내야할지 의문이 생길 것이다. 둘 값이 같다를 나타내는 등호는 '=='로 표기한다. 위 세 조건문 중에서 굳이 선언하지 않아도 되는 조건문이 있다. 그것은 바로 마지막 줄이다. x가 만약 y보다 작지도 않고, 크지도 않으면 결국엔 같은 값일 수 밖에 없기 때문이다. 얼마나 효율적으로 코딩하는지, 얼마나 적은 매모리나 CPU를 사용해서 수행하는지 고려해야할 필요가 있다.
if(x < y)
{
print('x is less than y\n');
}
else if(x > y)
{
print('x is greater than y\n');
}
else
{
print('x is equal to y\n';
}
3.2 루프
while문
scratch에서 forver라는 기능은 C에서는 while로 나타낸다. 어떠한 행동을 반복하라는 명령인데, 이 while은 옆에 boolean expression(참 혹은 거짓)이 필요하다. 여기서 참을 나타내는 식(1<2, 2<3)은 무한히 많은데, 가장 간단한 방법으로 True로 나타낸다.
while(True)
{
print('h');
}
이런식이라면 h가 영원히 나올 것이다. 대부분의 경우에는 무한루프는 필요하지 않다. 그래서 True 대신 조건을 추가해준다.
int i = 0;
while (i < 50)
{
print('hello world\n');
i = i + 1;
}
카운트를 의미하는 변수는 주로 i를 이용한다. 한 번을 반복하면 i는 1씩 증가하고, 50 이상이 될 때 while문 안의 조건문이 거짓이 되어 루프를 탈출하게 된다.
for문
while문보다 더 정교하게 루프를 설계하고 싶을 때 for문을 쓴다.
for(int i = 0; i < 50; i++)
{
print('hello world\n');
}
이 for문을 위의 while문이랑 똑같은 연산을 한다. for문 안의 세 가지 요소의 뜻은 (counter선언, loop가 돌아가는 조건, 매 loop마다 counter의 변화)이다.
'Naver Boostcourse' 카테고리의 다른 글
[웹 프로그래밍(풀스택)]Web 개발의 이해(2) (0) | 2021.12.06 |
---|---|
[웹 프로그래밍(풀스택)] Web 개발의 이해(1) (0) | 2021.12.06 |
[CS50] 2. C(1) (0) | 2021.12.03 |
[CS50]1. 컴퓨터 사고 (2) (0) | 2021.12.03 |
[CS50] 1. 컴퓨팅 사고(1) (0) | 2021.12.03 |