[CS] C : 조건문과 루프, 자료형, 형식 지정자

hee.moon·2022년 8월 28일
0

Computer Science

목록 보기
5/15
post-thumbnail
/* 모두를 위한 컴퓨터 과학(CS50 2019) 정리본입니다. */

자바스크립트를 처음 배웠을 때가 생각나는 수업이었다. for문, while문 같은 반복문이 처음에는 어려웠는데 쓰다보니 별거 아니지만 자주 쓰는 문법들이었다(특히 for문).


1. int


C는 저장하고자 하는 변수의 종류를 꼭 알려줘야 한다.
counter라는 변수에 숫자를 저장하고 싶을 때, int(정수, integer)를 써주면 된다. counter에 0을 저장(초기화)하는 코드는 아래와 같다.

int counter = 0;

2. 조건문


C의 조건문과 JS의 조건문은 거의 비슷하다. 중괄호 위치와 안에 함수 모양이 좀 다를 뿐이다. else를 추가할 때와 else if를 추가할 때도 마찬가지다.

if (x < y)
{
	printf("x is less than y\n");
}
if (x < y)
{
	printf("x is less than y\n");
}
else
{
	printf("x is not less than y\n");
}
if (x < y)
{
	printf("x is less than y\n");
}
else if (x > y)
{
	printf("x is greater than y\n");
}
else if (x == y)
{
	printf("x is equal to y\n");
}

3. 루프


C에서도 JS와 마찬가지로 while이나 for을 통해 반복문을 구현할 수 있다.

1. i = 0으로 설정한다.
2. i는 50보다 작은가?
3. 작으면, hello world를 출력하고 i를 1 증가시킨다.
4. i는 50보다 작은가?
(반복)
?. i가 50보다 작은가?
?. 작지 않다
?. 종료
int i = 0;
while (i < 50)
{
	printf("hello, world\n");
    i += 1;
}

위 코드는 for문으로 더 간단하게 표현할 수 있다.

for (int i = 0; i < 50; i++)
{
	printf("hello, world\n");
}

4. 데이터 타입


타입설명
bool불리언 표현 (예: True, False, 1, 0, yes, no)
char문자 하나 (예: 'a', 'Z', '?')
string문자열
int특정 크기 또는 특정 비트까지의 정수 (예: 5, 28, -3, 0)
long더 큰 크기의 정수
float부동소수점을 갖는 실수 (예: 3.14, 0.0, -28.56)
double부동소수점을 포함한 더 큰 실수

int는 대략 40억까지 셀 수 있기 때문에 40억을 쓸 일이 없는 사람(=나)은 int를 사용하면 된다.


5. 형식 지정자


printf 함수에서는 각 데이터 타입을 위한 형식 지정자를 사용할 수 있다(저번 포스팅에서 %s).

형식 지정자설명
%cchar
%sstring
%iint
%lilong
%ffloat, double

6. 예제


// int.c 파일: 나이(정수)를 받아서 출력하기

#include <cs50.h> // CS50 수업을 위해 만들어진 라이브러리
#include <stdio.h>

int main(void)
{
	int age = get_int("What's your age?\n");
    printf("You are at least %i days old.\n", age * 365);
}
$ make int // machine code로 바꾸기
$ ./int    // 실행하기

위 예제에서 printf 함수는 %iage * 365를 받아주고 있다.

// float.c 파일: 금액 받아서 세후금액 출력하기
#include <cs50.h>
#include <stdio.h>

int main(void)
{
	float price = get_float("What's the price?\n");
    printf("Your total is %f\n.", price * 1.0625);
    // 소수점 2번째 자리까지 나오게 하려면?
    // printf("Your total is %.2f.\n", price * 1.0625);
}
$ make float // machine code로 바꾸기
$ ./float    // 실행하기
profile
Frontend Engineer

0개의 댓글

관련 채용 정보