Skip to content

10, 11. 조건문 배우기 - if, else if, else #40

@JoisFe

Description

@JoisFe

Discussed in https://github.com/orgs/Programming-Language-Practice/discussions/39

Originally posted by JoisFe February 12, 2023

10, 11. 조건문 배우기 - if, else if, else

조건문

  • 어떤 조건이 참인지 거짓인지에 따라 실행 여부를 결정하는 구문
  • 이를 활용하여 조건문에 따라 특정 코드를 실행하게 만들 수도 실행하지 못하게 만들 수 있음
  • 자바스크립트의 대표적인 조건문으로 if, switch 가 존재
if (표현식)
  명령문
  • if 조건문은 표현식을 소괄호 ()로 둘러싼 형태를 가짐
  • 이때 표현식에는 의사결정을 할 수 있는 조건문을 작성하면 됨
  • 이 조건문의 결과값은 항상 불린형 값으로 반환되어야 함
  • if 조건문 결과값이 불린형 true인 경우에만 다음 명령문이 실행 됨
var result = true;

if (result) console.log('result가 참 입니다.');

if (!result) 
  console.log('실행되지 않아');

if (result) {
  console.log('result의 결과');
  console.log('>> 참 입니다.');
}
image
  • 변수 result에 불린값 true를 대입
  • if (result)의 result가 true(참) 이므로 다음의 명령문이 실행되어 "result가 참 입니다"를 출력
  • if (!result)의 !는 인자값을 반대로 변경하여 true 였던 result 변수의 값을 false로 바꿔 변환
    • 따라서 if 조건문은 다음 명령문을 실행하지 않아 출력 결과가 없음
  • if (result) 다음의 명령문이 한 줄 이상인 경우 중괄호 {}를 통해 블록을 잡을 수 있음
    • 변수 result 값이 true 이므로 다음 명령문의 블록을 모두 실행하여 출력

else if, else

  • if의 결과값이 false 일 때 추가 실행되는 조건문
var number = 2;

if (number == 1) {
  console.log("number는 1");
} else if (number == 2) {
  console.log('number는 2');
} else if (number == 3) {
  console.log('number는 3');
} else {
  console.log('number는 1, 2, 3 중 해당하는 것이 없음');
}
image
  • 변수 number에 숫자 2를 대입하여 선언
  • 변수 number가 숫자 1이 아니므로 else if 첫 번째 조건문으로 감
    • 조건 true 이기 때문에 'number는 2'가 출력됨
  • 밑의 조건문에 가지 않음
  • 만약 number = 5 였다면 else 전 조건문 모두 false 이므로 else 의 실행문을 실행 하여 'number는 1, 2, 3 중 해당되는 것이 없음' 이 출력 될 것임

else if, else를 사용하는 방법

  • if 조건문 외에 추가적으로 조건식을 추가하고 싶을 때 if의 조건문 뒤에 덧붙여 사용
  • 예제처럼 첫 번째 조건식 if (표현식1)과 명령문1을 함께 작성
  • 그 다음 조건식은 else if (표현식2)와 명령문2를 아래에 붙이고 다음 조건식들도 그 다음에 연달아 붙임
  • 모든 조건식에도 만족되지 않으면 else를 마지막 단락에 작성하여 명령문을 실행
  • else if와 else도 중괄호를 활용하여 블록 단위의 여러 명령문을 함께 사용 가능
  • 단 중괄호 없이 단일 명령문인 경우에는 들여쓰기를 주의해서 작성해야 함
  • 들여쓰기에 따라 명령문 실행의 착오가 생길 수 있으므로 한 문장이더라도 중괄호를 사용하는 것을 권장

Reference

초보자를 위한 JavaScript 200제, 정보문화사, [고재도, 노지연]

Metadata

Metadata

Assignees

No one assigned

    Labels

    200 Solved초보자를 위한 200제 책 학습을 위한 라벨입니다.JavaScriptJavaScript 관련 라벨입니다.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions