
스크래치에서 블록으로 표현했던 조건문과 루프 또한 C로 동일하게 구현할 수 있다. 또, 스크래치에서 여러 기능을 가진 블록들을 이어붙였던 것 처럼 C의 다양한 문법을 이용하면 조건문과 루프를 더 간단한 텍스트 형식으로 표현할 수 있다.
스크래치에서 counter 라는 변수를 생성하고 0을 저장하기 위해서는 아래와 같은 블록을 사용하였었다.

int couter = 0;
여기서 int는 변수가 정수(integer)라는 것을 알려주는 것이고, counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것이다.
다음은 변수의 값을 1씩 증가시키는 것이다.

// 모두 같은 기능을 수행한다.
counter = counter + 1;
counter += 1;
counter++;

if (x < y) {
printf("x is less than y\n");
}
if ( )의 괄호 안에는 검사하고자 하는 조건이 들어가고, { }안에는 조건을 만족할 때 수행하고자 하는 작업이 들어간다.
여기에서는 조건이 true면 "x is less than y"를 출력을 하라는 것이다.
else를 이용해 처음 조건이 아닌 경우에는 어떤 것을 하라라고 적어줄 수도 있다.

if (x < y) {
printf("x is less than y\n");
} else {
printf(x is not less than y\n");
}
이 경우에는 첫 번째 x < y 조건이 false, 즉 x가 y보다 작지 않을 경우에는 "x is not less than y"를 출력하라는 것이다.
else if 를 통해서 아래와 같이 조건을 추가할 수도 있다.

if (x < y) {
printf("x is less than y\n");
} else if (x > y) {
printf(x is not less than y\n");
} eles if (x == y) {
printf(x is equal to y\n");
}
여기서 사용한 ==는 일치 연산자로 같다는 뜻이다.
위 코드에서 x가 y보다 작지도 크지도 않다면 우리에게 남은 유일한 가능성은 "x와 y가 같다"이기 때문에 else if (x == y)를 제거하여 코드를 더 간략하게 수정할 수 있다.
if (x < y) {
printf("x is less than y\n");
} else {
printf(x is not less than y\n");
} eles {
printf(x is equal to y\n");
}
이처럼 효율적으로 코딩을 하고, 적은 메모리나 CPU를 사용해서 수행하게끔 하는 것을 정말 중요하다.

while (true) {
printf("hello, world\n");
}
while은 while ( )의 괄호 안에 조건을 넣고 { }안에 수행할 작업을 포함시키면 된다.
위 코드는 true라는 항상 참이 되는 조건을 통해 while 루프가 영원히 수행되도록 하기 때문에 계속해서 "hello, world"를 무한정 출력하게 될 것이다.
특정 횟수만큼 작업을 수행하고 싶으면 다음과 같이 하면 된다.

int i = 0;
while (i < 50) {
printf("hello, world\n");
i++;
}
i를 사용한다.처음에 i를 0이라고 정해주고, i<50이라는 조건을 추가해주면, while는 계속해서 i가 50보다 작은지를 물어볼 것이다.
그리고 i를 증가시키면 이 코드는 정상적으로 작동하게 된다.
진행 순서를 정리하면 아래와 같다.
i는 0으로 설정 -> i는 50보다 작은가? -> 작다 -> hello world를 출력한다 -> i를 1증가시킨다 -> i가 50보다 작은가?
-> (반복) -> i가 50보다 작은가? -> 작지 않다 -> 종료
for를 사용하면 for ( )안에 각각 (변수 초기화; 변수 조건; 변수 증가) 에 해당하는 코드를 넣어서 간단하게 표현할 수 있다.

for (let i =0; i < 50; i++) {
printf("hello, world\n");
}
이렇게 하면 while문과 비교하여 코드가 엄청 간단해진 것을 확인할 수 있다.
