📗조건문

여러분은 계획을 잘 세우는 편인가요? 저는 잘 세우는 편입니다.

근데 계획을 세울때 중요한 요소가 하나 있습니다. 백업 계획을 세워놔야 한다는 점이죠. 왜냐하면, 인생은 계획대로 되지 않으니까요.

그래서 저는 계획을 세우고, 그 계획이 계획대로 되지 않았을 경우를 대비하는 계획을 세우고, 또 그 백업 계획이 계획대로 되지 않았을 경우를 대비하는 계획을 세우고, 또 그 백업 계획을 백업하는 계획이 계획대로 되지 않았을 경우를 대비하는 계획을 세우곤 합니다.

장난 같이 들릴 수 있겠지만, 진담입니다. 이런 계획을 세울때, 제 머리 속의 논리는 이런 구조로 이루어 집니다.

이런 논리 구조를 보면 계획이 성공하느냐 실패하느냐는 각 상황에 따라 예측할 수 없습니다. 하지만 우리는 안전한 인생을 위해서 백업 계획을 세워놓고 실패했을때도 안전하게 우리의 계획을 이어나가는 것이죠.

개발자는 결국 이런 논리 구조를 설계하는 사람입니다. 이 논리 구조를 설계할때 컴퓨터와 소통하는 목적에서 프로그래밍 언어를 터득해야 하는 것이구요.

논리 구조의 다이어그램을 잘 보면, 여러 갈래로 나뉘어 지는 구간들이 있습니다. 그리고 이런 상황은 매우 빈번합니다.

조건문은 바로 이렇게 케이스가 나뉘는 논리를 작성하는 경우에 사용될 수 있는 것이고, 그렇기에 숨쉬듯 자주 사용할 수 밖에 없는 문법입니다. 아주 잘 살펴봐야겠죠?

지금 당장은 아주 필수적인 조건문 문법만 살펴볼 예정이고, 필수적인 요소 만으로도 우리의 논리 구조를 설계하는데는 무리가 없습니다. 나중에 정말 불편한 시기가 오면 그때 추가적인 학습을 하면 되니, 지금은 우선 최소한의 문법으로 다양한 논리 구조 설계를 연습해보는데 노력해보세요!

갑자기 느낌표를 붙이니까 조금 어색하네요. 느낌표는 앞으로 자제하겠습니다..

조건문 소개

조건문은 말 그대로 조건에 따라 코드의 실행을 제어하는 기능입니다. 우선 코드부터 볼까요?

if (true) {
  console.log("Hello, World!");
}

예시 코드의 truefalse 로 변경해보겠습니다.

소괄호 내의 값에 따라, 출력 결과가 달라졌죠?

💁🏻‍♂️ if 문장

문법적으로 정리해보자면, 다음과 같습니다.

위 구문은,

만약에 "조건"을 충족한다면 "실행 구문"을 해주세요.

라고 컴퓨터에게 부탁하는 구문입니다.

💁🏻‍♂️ if.. else 문장

상황에 따라서는 아래와 같이 조금 더 복잡한 논리 구조를 표현할 수도 있습니다.

위 구문은,

만약에 "조건 1"을 충족한다면 "실행 구문 1"을 해주시고,

그 외에는 모두 "나머지 경우"를 해주세요.

라고 컴퓨터에게 부탁하는 구문입니다.

💁🏻‍♂️ if.. else if.. else 문장

위 구문은,

만약에 "조건 1"을 충족한다면 "실행 구문 1"을 해주시고,

그 외에 만약에 "조건 2"를 충족하는 경우가 있다면 "실행 구문 2"를 해주시고,

그 외에는 모두 "나머지 경우"를 해주세요.

라고 컴퓨터에게 부탁하는 구문입니다.

💁🏻‍♂️ if.. else if 문장

위 구문은,

만약에 "조건 1"을 충족한다면 "실행 구문 1"을 해주시고,

그 외에 만약에 "조건 2"를 충족하는 경우가 있다면 "실행 구문 2"를 해주세요.

라고 컴퓨터에게 부탁하는 구문입니다.

if 구문만 필수이고, else if 구문과 else 는 상황에 따른 선택사항입니다.

여러분이 구성하고 싶은 "만약에 시리즈"를 원하는 만큼 자유롭게 구성할 수 있습니다.

조건문의 중첩

조건문은 상황에 따라 여러분이 원하는 대로 중첩하여 사용할 수 있습니다.

const something = true;
const moreSomething = true;

if (something) {
  console.log("I am inside something");

  if (moreSomething) {
    console.log("I am inside moreSomething");
  } else {
    console.log("I never gets called.");
  }
} else {
  console.log("I never gets called either.");
}

유의할 점

만약 if..else 구문을 이용하여 아래와 같은 코드를 작성했다고 생각해보세요.

if (A) {
  // one..
} else if (B) {
  // two..
} else if (C) {
  // three..
} else if (D) {
  // four..
} else if (E) {
  // five..
} else {
  // six..
}

위의 if..else if에서 보면, 6가지 조건이 있습니다. A ~ E 그리고 else가 있습니다.

유의할 부분은 조건문은 주어진 조건들 중에서 단 한 가지의 조건만 충족되어 실행될 수 있다는 것입니다. 먼저 충족되는 조건이 있다면, 나머지 조건은 실행될 수 없습니다.

설사 A와 C가 모두 참이라 해도, A 조건에 해당하는 코드만 실행되고 C 조건에 해당하는 코드는 실행되지 않습니다. 이것은 else if라는 구문 때문입니다. else라는 단어는 "아니면~"이라는 뜻이기 때문입니다.

조건을 충족한다는 것의 의미

앞 단계에서 Truthy와 Falsy의 개념에 대해 살펴봤던 것을 기억하시나요? 조건문이 조건을 충족한다는 의미 또한 Truthy와 Falsy가 적용됩니다.

조건이 충족되었다는 뜻은 Truthy이라는 의미이고,

조건이 충족되지 않았다는 뜻은 Falsy라는 의미입니다. 💁🏻‍♂️ true와 false가 조건의 충족 여부를 결정하지 않습니다. 🚫

예를 들어, 다음 조건문은 조건이 충족되어 "hello people" 이 출력됩니다.

if (" ") {
  console.log("hello people");
} else {
  console.log("bye people");
}

Last updated