[#7] 조건문(if, else if, else)으로 '숫자 맞추기 게임' 만들기

 

7강부터는 C++에서 가장 많이 쓰이는 조건문 중 하나인 if문에 대해 알아보고, 또 if문과 관련된 몇가지 규칙들을 배워본 후 최종적으로는 '숫자 맞추기 게임'을 만들어 보겠습니다.

 

첫번째 시간엔 if, else if, else정도만 알아보고, 다음시간에 추가로 break, continue, switch까지 알아보고 난 다음 최종적으로 게임을 만들어 볼 겁니다.

 

개인적으로 if문 쪽이 for문을 활용해서 피라미드 게임을 만드는 것 보다는 쉬웠습니다.

아마 여러분도 대부분 그렇게 생각하리라고 봅니다.

 


 

🔶 if

 

if문"만약에 ~라면?"을 컴퓨터에게 묻는 문장입니다.

 

예를 들어 현실에서 우리가

“만약 오늘 비 오면 우산 챙겨야지”

 

라고 생각하는 것처럼

 

컴퓨터에게도

“만약 어떤 조건이 참이면, 이걸 실행해줘”

 

라고 말해주는 거죠.

 

 

🔹if문의 기본 구조

if (조건)
{
    실행할 코드;
}

if문은 기본적으로 위의 코드처럼 생겼습니다.

 

위 코드를 해석하면

“만약 조건이 참(true)이라면, 중괄호 안의 코드를 실행해줘.”

 

가 됩니다.

 

 

✨ 예제 : 나이로 성인 판별하기

int age = 25;

if (age >= 20)
{
    printf("성인입니다.\n");
}
else
{
    printf("미성년자입니다.\n");
}
  • 위에서 age라는 변수에 25를 입력해 줬습니다.
  • 조건문 if에는 age >= 20을 놨죠. 이는 '만약 나이(age)가 20보다 같거나 높다면'을 뜻합니다.
  • 만약 이 조건문 if가 참일 경우에는 printf를 통해 "성인입니다."가 출력되게 됩니다.
  • 25는 20보다는 높으므로 age >= 20이 참이 되니, 컴퓨터는 "성인입니다."를 출력합니다.
  • 만약 age가 18이었다면? 조건이 거짓 → else 쪽 "미성년자입니다."가 출력됐겠죠. else는 바로 밑에서 설명합니다.
  • age가 20일때는 어떨까요?? 조건 자체가 '많거나 같을 때'이기 때문에 같은 20일때 역시 조건은 '참'이 되어 "성인입니다."가 출력되게 됩니다.

 


 

 

🔶 else

 

else는 말 그대로 영어 뜻처럼 “그 외에는~”, “그게 아니라면~” 이라는 의미를 갖고 있습니다.

 

else는 보통 결과가 둘 중 하나일 때 사용하게 됩니다.

예 : "정답 or 오답", "성공 or 실패", "참 or 거짓"

 

또, 모든 조건을 검사한 후, 나머지 모든 경우를 처리하고 싶을 때도 쓰죠.

예 : 학생 구분에서 "초, 중, 고등학생에 포함되지 않는 모든 사람" 처리하기

 

 

🔹 if와 else의 기본 구조

if (조건)
{
    // 조건이 '참'일 때 실행
}
else
{
    // 조건이 '거짓'일 때 실행
}

즉, 조건이 맞으면 if 블록을 실행하고, 조건이 틀리면 무조건 else 블록을 실행합니다.
다른 조건을 따지지 않고, 그냥 else 쪽으로 넘어가게 되는 것이죠.

 


 

🔶 else if

만약 조건이 하나가 아니라 여러 가지 경우로 나뉠 때는 어떻게 할까요?

예를 들어 '학생 구분하기'처럼 말이죠.

8세~13세 → 초등학생
14세~16세 → 중학생
17세~19세 → 고등학생
나머지 → 학생 아님

 

이렇게 조건이 여러가지 존재할 때는 if와 else 두개만으론 해결할 수 없습니다.

이 때 쓰는 게 바로 else if 입니다. else if는 여러 갈래로 조건을 나눌 때 쓰게 됩니다.

 

다만 else if를 알아보기 전에, 먼저 알아야 할 &&라는 것부터 다뤄보겠습니다.

 

 

🔹 &&

 

먼저 age라는 변수를 설정해주고, if문을 써보겠습니다. 가장 먼저 할 것은 초등학생(8~13세)입니다.

 
int age = 7;

if (age >= 8 && age <= 13)
{
    printf("초등학생입니다.\n");
}

근데 코드를 보면 배운것과는 뭔가 조금 다르게 생겼다는 것을 알 수 있습니다.

if문 안에 조건이 한개가 아니라 두 개가 들어있고, 그 중간엔 &&라는 이상한 기호가 있습니다.

 

if문 안에는 조건을 하나가 아닌 두 개 이상 넣을 수 있는데, 이 때 넣는 것이 바로 &&입니다.

&&는 "그리고(and)"입니다. 우리가 말로 할 때

“나이가 8살 이상이고, 13살 이하라면 초등학생”

 

이렇게 ‘~이고’ 또는 ‘~이면서’ 같은 표현을 쓰죠?

이런 의미를 컴퓨터에게 전달하는 기호가 바로 &&입니다.

 

쉽게 코드로 표현해보자면

if (조건1 && 조건2)

// "조건1이 참이고, 조건2도 참이면 이 코드를 실행"

 

이렇게 이해하면 쉽습니다.

 

 

✨ 예제

 

한 번 아래와 같은 조건식을 해석해 보겠습니다.

age라는 변수에 10을 넣었을 때,

int age = 10;

if (age >= 8 && age <= 13)
{
    printf("초등학생입니다.\n");
}
  • 첫 번째 조건: age >= 8 (age가 8보다 높거나 같음) → 참
  • 두 번째 조건: age <= 13 (age가 13보다 낮거나 같음) → 참
  • 둘 다 참(true)이기 때문에 전체 조건이 참이 되므로 "초등학생입니다"가 출력되게 됩니다.
  • 이렇게 &&는 조건식 안에 있는 것들이 모두 참이 되어야만 해당 조건문이 발동하게 됩니다.

 

 

❌ 만약 둘 중 하나가 거짓이면?

int age = 7;

if (age >= 8 && age <= 13)
{
    printf("초등학생입니다.\n");
}
else
{
	printf("초등학생이 아닙니다.\n");
}
  • 첫 번째 조건: age >= 8 (age가 8보다 높거나 같음) → 거짓
  • 두 번째 조건: age <= 13 (age가 13보다 낮거나 같음) → 참
  • 하나라도 거짓(false)이면 전체 조건은 거짓이기 때문에 else문 "초등학생이 아닙니다"가 출력되게 됩니다.
  • &&는 '둘 다 참이어야 참'인 조건문이기 때문입니다.
  • &&와는 다르게 하나라도 참이면 참으로 판단하는 || 도 있지만, 이는 다음 시간에 다루겠습니다.

 

 

🔹초중고생 판별하기

 

다시 else if로 돌아와서, 초중고생을 판별해 보겠습니다.

위처럼 if로 초등학생을 설정해주고, 그 밑에 중, 고등학생은 else if를 넣어서 조건을 여러갈래로 나눠주겠습니다.

그리고 마지막으로 초중고생 모두 해당하지 않는 경우는 else로 설정하겠습니다.

int age = 15;

if (age >= 8 && age <= 13)
{
    printf("초등학생입니다.\n");
}
else if (age >= 14 && age <= 16)
{
    printf("중학생입니다.\n");
}
else if (age >= 17 && age <= 19)
{
    printf("고등학생입니다.\n");
}
else
{
    printf("초중고생은 아니네요.\n");
}

위의 코드를 한번 해석해보면

  • 변수 age15로 설정
  • age >= 8 && age <= 13 (age가 8보다 높거나 같다면 / 그리고 13보다 낮거나 같다면) → 거짓
  • age >= 14 && age <= 16 (age가 14보다 높거나 같다면 / 그리고 16보다 낮거나 같다면) → 참
  • age >= 17 && age <= 19 (age가 17보다 높거나 같다면 / 그리고 19보다 낮거나 같다면) → 거짓
  • else (age가 위 세개 모두 해당하지 않는다면) → 도달하지 않음

이렇게 됩니다.

"중학생입니다"가 출력되게 됩니다.

 

요약하자면,

if 조건이 참이면 실행
else 위 조건이 모두 거짓일 때 실행
else if 중간 조건을 계속해서 나눌 때 사용
&& 그리고(and)를 뜻함

가 됩니다.

 


 

 

🔶 AI피드백

 

Q. 오늘은 C++에서 조건문 if, else, else if, &&에 대해서 배웠어. 오늘 배운 네가지 조건문이 왜 중요한지 알 수 있어? 내가 알기로 if문이 코딩에서 굉장히 많이 쓰이고 자주 쓰이는걸로 알고있거든. 또, 이 if문이 어디에 쓰이는지도 알려줬으면 좋겠어.

 

마지막으로 이전에 배운 for문으로 피라미드 쌓기, 별쌓기 만드는거보단 if문이 더 쉽게 느껴졌는데, 그 이유가 뭔지도 말해줬으면 좋겠어.

 

A. 좋아! 아주 핵심적인 질문이자 '생각하는 개발자'의 사고야

너는 지금 단순히 코드를 "쳐보는" 게 아니라, 왜 이 문법을 배우는지, 어디에 쓰이는지, 그리고 **내가 어렵게 느끼는 이유가 뭘까?**까지 고민하고 있어.

 


 

✅ 1. 왜 if문이 그렇게 중요할까?

 

이유는 간단해:

프로그램은 “선택”으로 작동하기 때문이야.

 

 

💡 예시로 보자

  • 게임에서 체력이 0이 되면 → "Game Over"를 보여줘야 해
  • 쇼핑몰에서 장바구니가 비어있으면 → "장바구니가 비어 있습니다" 출력
  • 앱에서 로그인 정보가 맞으면 → 다음 화면으로, 아니면 → "비밀번호가 틀렸습니다"

→ 이 모든 상황 판단은 if로 결정돼.

 

 

즉, if문은 프로그래밍의 “두뇌” 역할을 해


구조 의미
if “이 조건이 참이면…”
else “그렇지 않다면…”
else if “아니고 이런 조건이면…”
&& 조건을 여러 개 조합할 때 사용 (그리고 조건)
 
 

✅ 2. if문은 어디에서 쓰일까?


분야 활용 예
게임 개발 캐릭터 체력, 상태, 스토리 분기, 스킬 조건 등
앱 개발 로그인, 버튼 클릭 시 반응, 조건부 경고창
웹 개발 사용자의 입력값 검사, 메뉴 출력 조건 등
시스템 프로그래밍 파일이 존재하는지 여부, 권한 체크
하드웨어 제어 온도센서가 30도 이상일 때 팬 작동
 

요약하면: “조건이 있고 선택지가 필요한 곳”이라면 무조건 if문이 있어!

 

 

✅ 3. 왜 if문이 for문보다 쉽게 느껴졌을까?

 

항목 for문 if문
주 용도 반복 조건 판단
복잡도 흐름을 계속 반복하므로 시뮬레이션 필요 한 번만 실행되므로 직관적
난이도 체감 안쪽에 중첩될수록 복잡함 (별쌓기 등) 조건이 복잡해도 로직 자체는 단순함
결과 예측 머릿속에서 여러 단계 시뮬레이션 필요 조건만 알면 바로 이해 가능

 

즉, for문은 "몇 번 반복되는지 상상해야 하고",
그 안에서 조건이 겹치면 혼란도가 폭발하지만,
if는 딱 보고 "이거면 이거"니까 쉽게 체감되는 거야.

 

 

🎯 정리 요약


질문
if문은 왜 중요한가? 프로그램이 선택을 기반으로 작동하기 때문. 모든 판단 구조에 핵심.
어디에 쓰이나? 게임, 웹, 앱, 시스템 등 모든 프로그래밍 분야에서 필수
왜 for문보다 쉽게 느껴지나? if문은 선형적(직선적) 사고로 흐름이 단순하지만, for문은 반복 흐름의 예측이 필요하기 때문