C - 결정 제작: 초보자 가이드

안녕하세요, 미래의 프로그래머 여러분! C 프로그래밍의 흥미로운 세상에 환영합니다. 저는 이 여정에서 여러분의 안내자가 되어 기쁩니다. 코드 작성에서 가장 기본적인 개념 중 하나인 결정 제작에 대해 배우겠습니다. 10년 이상 C를 가르쳐온 경험을 바탕으로, 이 개념을 마스터하면 여러분의 프로그래밍 여정에서 게임 체인저가 될 것이라 확신합니다. 그럼 시작해보겠습니다!

C - Decision Making

C 프로그래밍에서 If 문

아이스크림 가게에 있고, 콘을 사야 할지 말아야 할지 결정해야 한다고 상상해보세요. 프로그래밍에서는 'if' 문을 이런 결정에 사용합니다. 마치 질문을 하고 그에 따라 행동하는 것과 같습니다.

C에서는 다음과 같이 보입니다:

if (condition) {
// 조건이 참일 때 실행할 코드
}

실제 예제를 보겠습니다:

#include <stdio.h>

int main() {
int scoops = 2;

if (scoops > 1) {
printf("Wow, that's a lot of ice cream!\n");
}

return 0;
}

이 예제에서 scoops의 값이 1보다 크다면 메시지를 출력합니다. 'scoops'의 값을 바꿔보고 어떤 일이 일어나는지 확인해보세요!

C 프로그래밍에서 If...else 문

그렇다면 조건이 거짓일 때 무엇을 할까요? 이때는 'if...else' 문이 유용합니다. 마치 Plan B를 가지는 것과 같습니다.

다음과 같이 보입니다:

if (condition) {
// 조건이 참일 때 실행할 코드
} else {
// 조건이 거짓일 때 실행할 코드
}

아이스크림 예제를 확장해보겠습니다:

#include <stdio.h>

int main() {
int money = 5;
int ice_cream_cost = 6;

if (money >= ice_cream_cost) {
printf("Yay! You can buy an ice cream!\n");
} else {
printf("Sorry, not enough money for ice cream today.\n");
}

return 0;
}

이 예제에서 돈이 아이스크림 가격 이상이라면, 멋지게 아이스크림을 살 수 있습니다. 그렇지 않으면, 오늘은 안 되겠네요.

C 프로그래밍에서 중첩된 If 문

occasionally, life (and programming) isn't just about one decision. We often need to make decisions within decisions. That's where nested 'if' statements come in.

다음과 같이 보입니다:

if (outer_condition) {
if (inner_condition) {
// 두 조건 모두 참일 때 실행할 코드
}
}

보다 복잡한 아이스크림 시나리오를 보겠습니다:

#include <stdio.h>

int main() {
int temperature = 30;
int has_money = 1; // 1은 참, 0은 거짓

if (temperature > 25) {
if (has_money) {
printf("It's hot and you have money. Time for ice cream!\n");
} else {
printf("It's hot, but no money for ice cream. Maybe a cold shower?\n");
}
} else {
printf("It's not that hot. Save your money for a rainy day.\n");
}

return 0;
}

이 프로그램은 온도와 돈이 있는지를 고려하여 아이스크림을 제안합니다.

C 프로그래밍에서 Switch 문

'Switch' 문은 결정 제작의 다양한 옵션을 선택하는 다층 아이스크림 콘과 같습니다. 여러 가지 옵션을 선택할 때 완벽합니다.

다음과 같이 보입니다:

switch(expression) {
case constant1:
// expression이 constant1과 같다면 실행할 코드
break;
case constant2:
// expression이 constant2와 같다면 실행할 코드
break;
...
default:
// expression이 어떤 상수와도 일치하지 않는다면 실행할 코드
}

아이스크림 맛을 선택하는 데 사용해보겠습니다:

#include <stdio.h>

int main() {
int flavor = 2;

switch(flavor) {
case 1:
printf("You chose vanilla. Classic!\n");
break;
case 2:
printf("Chocolate it is. Yum!\n");
break;
case 3:
printf("Strawberry, a fruity delight!\n");
break;
default:
printf("We don't have that flavor. How about vanilla?\n");
}

return 0;
}

이 프로그램은 선택한 맛에 따라 메시지를 선택합니다.

C 프로그래밍에서(?:) 연산자

ternary operator (?:)는 간단한 결정을 빠르게 작성하는 'if...else' 문의 약자입니다. 간단하고 빠른 결정에 완벽합니다.

다음과 같이 보입니다:

condition ? expression_if_true : expression_if_false;

간단한 디저트 결정을 작성하는 방법을 보겠습니다:

#include <stdio.h>

int main() {
int is_hungry = 1; // 1은 참, 0은 거짓

printf(is_hungry ? "Let's get ice cream!\n" : "Maybe later.\n");

return 0;
}

이 한 줄은 배고픔에 따라 아이스크림을 제안합니다.

C 프로그래밍에서 Break 문

'Break' 문은 대화 중간에 "이제 끝"이라고 말하는 것과 같습니다. 루프나 스위치 문을 일찍 종료하는 데 사용됩니다.

다음과 같이 보입니다:

#include <stdio.h>

int main() {
int i;
for(i = 1; i <= 10; i++) {
if(i == 5) {
printf("Found 5! Let's stop here.\n");
break;
}
printf("%d ", i);
}
return 0;
}

이 프로그램은 10까지数하지만 5에 도달하면 중지합니다.

C 프로그래밍에서 Continue 문

'Continue' 문은 대화에서 "이 것을 건너뛰고 다음으로 가자"라고 말하는 것과 같습니다. 현재 루프 이터레이션의 나머지 부분을 건너뛰고 다음 이터레이션으로 이동합니다.

다음과 같이 보입니다:

#include <stdio.h>

int main() {
int i;
for(i = 1; i <= 5; i++) {
if(i == 3) {
printf("Oops, let's skip 3.\n");
continue;
}
printf("Ice cream scoop number %d\n", i);
}
return 0;
}

이 프로그램은 아이스크림을 수를数하지만 3번째 수를 건너뛰습니다.

C 프로그래밍에서 Goto 문

'Goto' 문은 코드에서 레이블로 이동하는 것과 같은 텔레포트 장치입니다. 그러나 코드가 이해하기 어려워질 수 있으므로 신중하게 사용하세요.

다음과 같이 보입니다:

#include <stdio.h>

int main() {
int scoops = 0;

scoop_more:
scoops++;
printf("Added a scoop. Total: %d\n", scoops);

if(scoops < 3) {
goto scoop_more;
}

printf("Ice cream sundae complete!\n");
return 0;
}

이 프로그램은 3개의 아이스크림을 추가할 때까지 반복합니다.

여기서 다룬 결정 제작 방법을 요약한 표를 보겠습니다:

방법 목적 문법
if 간단한 조건 검사 if (condition) { ... }
if...else 이분 결정 if (condition) { ... } else { ... }
중첩된 if 여러 조건 if (condition1) { if (condition2) { ... } }
switch 여러 옵션 switch(expression) { case constant: ... }
(?:) 간단한 결정 condition ? true_expression : false_expression
break 루프나 스위치 종료 break;
continue 루프 이터레이션 건너뛰기 continue;
goto 레이블로 이동 goto label;

기억하시기 바랍니다, 연습이 완벽을 만듭니다! 이 개념들을 사용하여 자신의 프로그램을 작성해보세요. 얼마 지나지 않아 C에서 결정을 내리는 데 전문가가 될 것입니다. 즐겁게 코딩하세요!

Credits: Image by storyset