1) 조건문
① counter 라는 변수를 생성하고 0을 저장하기
int counter = 0;
- C는 오래된 언어라 저장하고자 하는 변수의 종류를 꼭 알려줘야 한다
- counter라는 변수에 숫자를 저장
- int 는 변수가 정수(integer)라는 것을 알려주는 것이고, counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것
- 코드의 마지막은 세미콜론(;)
- 여기서 등호(=)는 같다는 의미가 아닌, 오른쪽에 있는 값을 왼쪽에 할당한다는 의미
② 변수의 값을 1씩 증가시키기
counter = counter + 1;
counter += 1;
counter++;
- 즉, counter에 1을 더한 값을 다시 counter에 저장(할당)한다
- 위와 같이 3가지 방식으로 구현 가능
③ 조건문 만들기
if (x < y)
{
printf("x is less than y\n");
}
else if (x > Y)
{
printf("x is greater than y\n");
}
else (x == y)
{
printf("x is equal to y\n");
}
- if ( ) 의 괄호 안에는 검사하고자 하는 조건이 들어가고, { } 안에는 조건을 만족할 때 수행하고자 하는 작업이 들어간다.
- 일치 연산자 " == " : 오래전 사람들이 합의하길 =을 2개 사용하여 같다를 표현하자라고 정한 것
- if, else, else if 뒤에는 세미콜론(;)이 붙지 않음. 보통 조건과 같은 것들의 끝에는 세미콜론을 붙이지 않는다.
2) 루프
C에서도 while 이나 for 을 통해서 루프를 구현할 수 있다.
① while
While (true)
{
printf("hello, world\n");
}
- while ( )의 괄호 안에 조건을 넣고 { } 안에 수행할 작업을 포함시킨다.
- C에서 루프를 구현하고 싶다면 성립 조건을 정해줘야 한다. (답이 네, 참, 혹은 1로 나올 수 있는 질문을 던져줘야 함)
- 답이 참으로 나오게 하는 가장 간단한 방법은 그냥 true를 적는 것ㅇ
- 윗 코드에서는 true라는 항상 참이 되는 조건을 통해 while 루프가 영원히 수행되도록 했다. 따라서 위의 코드는 계속해서 "hello, world"를 무한정 출력하게 될 것 !
② 만약 특정 횟수만큼 작업을 수행하고 싶다면 ?
int i = 0;
while (i < 50)
{
printf("hello world\n");
i = i + 1;
}
- 변수명은 맘대로 적어도 문제 없지만, 프로그래머들은 무언가를 셀 때 간단하게 정수를 나타내는 i를 사용한다.
- 이번에는 i<50이라는 조건을 추가
- 처음에 i를 0이라고 정해주었고 while는 계속해서 i가 50보다 작은지를 물어볼 것
- 이 코드가 정상적으로 작동하려면 i를 증가시켜야 한다. (i = i + 1, i += 1, i++ 모두 같은 결과를 냄.)
- 진행 순서 : i는 0으로 설정 → i는 50보다 작은가? → 작다 → hello world를 출력한다 → i를 1증가시킨다 → i가 50보다 작은가?
→ (반복) → i가 50보다 작은가? → 작지 않다 → 종료
③ for
for (int i = 0; i < 50; i++)
{
printf("hello world\n");
}
- 따로 변수를 선언해도 되지만 위와 같이 for 를 사용하면 for ( ) 안에 각각 (변수 초기화; 변수 조건; 변수 증가) 에 해당하는 코드를 넣어서 간단하게 표현할 수 있다.
- 즉, 가장 먼저 정수 값을 가지는 i라는 변수를 0으로 초기화하고, i가 50인지 매번 검사를 하고, 이를 만족하면 { } 안의 내용을 수행한 후에, i를 1씩 증가시킨다는 의미
- while문과 비교하여 코드가 엄청 간단해진 것을 확인할 수 있다.
'boostcourse > CS50' 카테고리의 다른 글
CS50 3. 배열 (1) - 컴파일링, 디버깅, 코드의 디자인 (0) | 2022.10.22 |
---|---|
CS50 2. C 언어 (3) - 자료형, 형식 지정자, 연산자 (0) | 2022.10.22 |
CS50 2. C 언어 (1) - C기초, 문자열 (0) | 2022.10.22 |
CS50 1. 컴퓨터 사고 (2) - 스크래치 (0) | 2022.10.22 |
CS50 1. 컴퓨팅 사고 (1) - 2진법, 정보의 표현, 알고리즘 (0) | 2022.10.22 |