TIL 04 - 조건문과 반복문

hojung choi·2021년 5월 22일
0

js

목록 보기
5/17
post-thumbnail

조건문

조건문은 조건식의 값에 따라 실행 흐름을 제어한다.
먼저 기본적인 조건문인 if/else를 알아본 다음 좀 더 복잡한 switch문을 알아보자

if

1️⃣ if(조건식) 문장
2️⃣ if(조건식) 문장 1 else {문장 2}

  1. 조건식이 true로 평가되면 문장을 실행한다
  2. 조건식이 true로 평가되면 문장1을 실행하고, 조건식이 false로 평가되면 문장2를 실행한다
if(a>0){a++;} //{}생략가능
const a = 1;

if (a > 0) {
  console.log(a);
} else {
  console.log('해당 조건문은 false 입니다');
}

✅ 중첩하여 쓸 수도 있어요!

if문도 일종의 문장으로 if문 안에 if문을 작성 할 수 있다

const a = 1;
const b = 2;
const c = 3;

if (a > b) {
  if (a > c) {
    console.log("a가 가장 크다");
  }
} else {
  console.log("a는 b이하");
}
if (num === 1) {
  console.log("one");
  } else {
  if(num===2){
    console.log("two");
  } else {
    console.log("three");
  }
}

첫번째 else절 안에 있는 if/else문은 한 문장으로 그 문장을 둘러싼 중괄호를 삭제할 수 있다
그렇게 되면 다음과 같은 모습이 나온다

if (num === 1) {
  console.log("one");
} else if(num===2){
  console.log("two");
} else {
  console.log("three");
}

if (조건식1) {
문장1
} else if(조건식2){
문장2
} else if(조건식3){
문장3
}
...
} else {
문장n
}

switch

switch(표현식){
case 표현식1 : 실행문1 (문장여러개)
case 표현식2 : 실행문2 (문장여러개)
...
case 표현식n : 실행문n (문장여러개)
default: 실행문n + 1 (문장여러개)
}

switch문이 실행되면 먼저 괄호 안에 들어 있는 표현식을 평가하고 평가한 값과 일치하는 case값을 위에서 부터 아래 방향으로 찾는다
case값과 일치하는 case를 찾게되면 그 case가 속한 블록 문장을 차례대로 실핸한다
일치하는 case값을 찾지 못하면 default를 찾고 default 안의 문장을 실핸한다
** 값이 일치하는 case와 default를 찾지 못하면 아무것도 하지 않는다!

switch (n) {
  case 1:
    console.log("one");
    break;
  case 2:
    console.log("two");
    break;
  case 3:
    console.log("three");
    break;
  default:
    console.log("not");
}

이 코드에서 각각의 case 실행문 끝에 break키워드가 있다
break문이 실행되면 블록 문장에서 빠져나와 다음작업을 시작한다
switch문의 case는 분기의 시장을 명시할 뿐 분기의 끝은 명시하지 않는다
break문을 하나도 사용하지 않으면 case로 분기한 다음에 그 뒤에 등장하는 전체문장을 실행하게 된다
retrun도 가능하다!



반복문

반복문은 일정한 처리를 한 다음 원래 위치로 돌아가 똑같은 처리를 반복하는 처리를 표현한다.

while

while문은 조건만 맞아 떨어지면 일정한 처리를 계속 반복해서 실행한다

while(조건식) 문장

while문을 실행하면 가정 먼저 조건식을 평가한다. 조건식을 평가 한 결과가 false이면 while문을 빠져나와 다음 처리로 이동한다. 조건식을 평가한 결과가 true이면 문장을 실행하고 다시한번 while문의 시작 부분으로 돌아가서 조건식을 평가한다 즉, while문의 조건식은 반복조건을 뜻한다
while문 안에서는 break문과 continue문을 사용할 수 있다

  • while문 안에서 break를 실행하면 while문에서 빠져나온다
  • while문 안에서 continue를 실행하면 while문의 시작 부분으로 되돌아간다.
let i = 1; 
while (i < 10) { // 변수 i가 10보다 작을 때만 while 문을 반복함. 
   console.log(i + "번째 실행"); 
   i++; 
}

do/while

while문은 반복해서 실행할지를 시작 부분에서 판단하지만 do/while문은 반복해서 실행할지를 마지막 부분에서 판단한다

do 문장 while(조건식);

조건식을 평가한 결과가 false이면 do/while문을 빠져나와 다음 처리로 이동한다. 조건식을 평가한 결과가 true이면 반복문의 시작 부분으로 되돌아 간다. while문 안에 있는 문장은 한 번도 실행되지 않을 수 있지만 do/while문 안에 있는 문장은 반드시 한 번 이상 실행된다

// do while => 1행 출력 (반드시 한 번 이상 실행)
let i = 1;
do { // 변수 i가 1보다 작을 때만 while 문을 반복
    console.log(i + "번째 실행");
    i++;
} while (i < 1);

// while => 조건이 맞지 않기 때문에 바로 종료
let i = 1;
while (i < 1) {
    console.log(i + "번째 실행");
    i++;
}

for

반복문은 대부분 세가지 공통점이 있다

  • 반복조건의 초기화 작업
  • 반복문의 조건식
  • 반복 작업이 하나 끝났을 때 반복 조건을 갱신

for문은 이 세가지 작업을 한 곳에 표기한다.

for (초기화 식; 조건 식; 반복식) 문장

for문을 실행하면 반복문을 시작하기 전에 초기화식을 단 한 번 실행한다. 그 후에 반복작업을 시작하는데 이때 조건식을 먼저 평가한다 조건식을 평가한 결과가 false이면 반복문을 빠져 나와 다음 처리로 이동한다. 조건식을 평가한 결과가 true이면 문장을 실행한 후에 반복식을 실핸한다. 그리고 다시 한 번 for문의 시작점으로 돌아가서 조건식을 평가한다.

for (let i = 1; i < 10; i++) { 
  console.log(i + "번째 실행"); 
}

✅ 중첩하여 쓸 수도 있어요!

for문안에 for문을 작성하면 중첩 반복문을 만들 수 있다

for (let i = 1; i < 10; i++) { 
  for (let j =1; i < 10; i++){
    console.log(`${i} - ${j} 번째 실행`);
  }
}

for/in

for/in문은 객체 안의 프로퍼티를 순회하는 반복문이다.

for (변수 in 객체 표현식) 문장

여기서 변수는 객체의 key값이라고 생각하면 이해하기 쉬울 것이다
for/in문이 실행되면 객체의 표현식을 평가한다. 객체의 표현식이 null 또는 undefined로 평가되면 for/in문을 빠져나와 다음 작업으로 이동한다.
객체 표현식이 객체로 평가되면 객체의 프로퍼티 이름(key)이 차례대로 변수에 할당되고 각가의 프로퍼티에 대해 문장이 실행된다.

const obj = {a:1, b:2, c:3};

for (let p in obj){
  console.log(`p = ${p}`);
} // p = a, p = b, p = c

📌 TMI

프로그래밍을 공부하다 보면 가장 많이 볼 수 있는 코드 중 하나가 if , for문이라고 생각한다! 내가 학부때 c,java를 공부했을때도 for문만 주구 장창... 돌렸으니^^^ㅋㅋㅋㅋㅋㅋ 아무튼 벌써 몇 년 전일이고, 이렇게 정의를 정리하는 것은 정말 오랜만!

profile
🧚🏻‍♀️ Front-End Developer

0개의 댓글