조건문과 반복문

유슬기·2022년 12월 19일
0

프론트엔드

목록 보기
3/64
post-thumbnail

시작하며

부트캠프 3일 차.
오늘은 실시간 세션 없이 조건문과 반복문, 함수에 대해 혼자 배우는 시간이다.
독학으로 공부한 내용이니 복습 차원에서 한 번 더 꼼꼼히 봤다.

cp4. 조건문

학습 목표

✅ 특정한 조건에서만 실행되는 코드를 작성할 수 있다.
✅ truthy와 falsy 가 조건문에서 작동하는 방식을 이해할 수 있다.

  • if (조건식) { 조건식이 참일 때 실행할 코드};
  • if (! 조건식) {조건식이 거짓일 때 실행할 코드};

✅ 비교 연산자를 통한 엄격한 비교(=== , !==)에 대해 이해할 수 있다.
✅ if, else if, else를 사용하여 여러 개의 조건을 중첩해서 사용할 수 있다.
✅ 논리 연산자를 (&&, ||, ! ...) 통해 복잡한 조건을 간결하게 작성할 수 있다.


if문

if문은 주어진 조건식의 참(trun)과 거짓(false) 여부에 따라 실행이 결정된다.
따라서 조건식은 결과가 불린 타입이 되도록 작성해야 한다.

if (true) { // 조건식이 true이면,
	console.log('hello world'); // 코드블록 내부의 코드가 실행
}

여기서 지난 번에 배운 동치연산자와 비교연산자를 사용한다.
=== !== > < <= >=

let course = 'seb fe';
if (course === 'seb fe') {
  console.log('변수 course에 "seb fe"를 할당했습니다.');
}

let num = 5;
if (num < 10) {
	num = num + 1;
}
console.log(num); // 6

논리곱 연산자와 논리합 연산자를 사용하면 여러 조건을 한 번에 작성할 수 있다.

let age = 15;
if (age > 13 && age <= 19) {
	console.log('청소년입니다.'); // '청소년입니다.'
}

else문

if문과 함께 else문을 사용하면 조건이 true일 때, false일 때 각각 다른 코드가 실행되도록 할 수 있다. (단, else문은 단독으로 사용 불가. if문 바로 뒤에 작성해야 함!)
조건을 추가하고 싶다면 else if문을 사용하면 됨

let age = 15;
if (age < 8) {
  console.log('미취학아동입니다.');
} else if (age >= 8 && age < 14) {
  console.log('초등학생입니다.');
} else if (age >= 14 && age < 17) {
  console.log('중학생입니다.'); // '중학생입니다.'
} else if (age >= 17 && age < 20) {
  console.log('고등학생입니다.');
} else {
  console.log('성인입니다.');
}

삼항 조건 연산자

실행할 코드가 간단하다면 if문과 else문을 삼항 조건 연산자로 바꿔 쓸 수 있다.
삼항 조건 연산자: 조건식 ? 참일 때 실행할 코드 : 거짓일 때 실행할 코드

let num = 5;
num % 2 === 0 ? console.log('짝수') : console.log('홀수'); // '홀수입니다.'

// 위의 식과 동일하게 동작함
let num = 5;
if (num % 2 === 0) {
	console.log('짝수입니다.');
} else {
	console.log('홀수입니다.'); // '홀수입니다.'
}

cp5. 반복문

학습 목표

✅ for 반복문을 작성할 수 있다.
✅ for 반복문이 여러 개의 코드 블록의 조합이라는 것을 이해한다.
✅ 구구단 n단 출력을 반복문으로 구현할 수 있다.
✅ 반복문 내부에 조건문을 활용할 수 있다.
✅ 이중반복문의 동작 순서를 이해할 수 있다.
✅ 구구단 1-9단 출력을 이중반복문으로 구현할 수 있다.
✅ for반복문과 while반복문의 차이점을 설명할 수 있다.
✅ for반복문으로 작성된 코드를 while반복문으로 바꿀 수 있다.


for문

for문을 사용하면 코드를 몇 번 반복하여 실행할지 결정할 수 있음.
for (초기값; 조건식; 증감식) { 실행할 코드 }

  • 초기값: 증감식 반복횟수를 카운트하는 역할을 하는 변수로, 반복문의 코드블록 내부에서만 유효함 (이때 변수는 정수를 의미하는 ‘integer’의 약자인 i를 주로 사용)
  • 조건식: 코드블록 내부의 코드를 실행할 지 결정하는 식. true일 경우 코드를 실행하다가 false가 되면 반복문이 종료됨
  • 증감식: 코드블록 내부의 코드를 실행한 후 초기값으로 선언된 변수를 증가 or 감소시키기 위한 표현식
// 코드가 실행될 때마다 i가 1씩 증가
for (let i = 1; i <= 3; i++) {
	console.log(i); // 1 2 3
}

반복문과 조건문 활용

  1. 구구단 반복문으로 출력하기

    let num = 3;
    if (num >= 2 && num <= 9) { // 2~9 사이 입력 시 for문 실행
        for (let i = 1; i <= 9; i++) { // 1~9 까지 1씩 증가하며 아래 코드 실행
            console.log(num * i);
        }
    } else {
        console.log('2와 9사이의 수를 입력하세요.'); // 2 미만, 9 초과인 숫자 입력 시 실행
    }
  2. 문자열의 첫 번째 문자부터 마지막 문자까지 모두 출력하기

    let str = 'codestates';
    for (let i = 0; i <= str.length - 1; i++) { // 0 ~ (str의 길이 -1) 까지 1씩 증가하며 아래 코드 실행
        console.log(str[i]); // (c o d e s t a t e s) str의 i번째 인덱스 문자 출력
    }
  3. 1부터 10까지의 숫자 중 홀수만 출력하기

    for (let i = 1; i <= 10; i++) {
      if (i % 2 === 1) {
        console.log(i);
      }
    }
  4. 주어진 문자열의 문자들 중, 인덱스가 짝수인 문자만 출력

    let str = 'software engineering bootcamp';
    
    // 변수 str에 할당된 문자열의 모든 문자를 순회하도록 for문을 작성하세요.
    for (let i = 0; i < str.length; i++) {
      // 인덱스가 짝수인 문자만 출력하도록 알맞은 조건식을 넣어야 합니다.
      if (i % 2 === 0) {
        console.log(str[i]);
      }
    }

반복문의 중첩

반복문은 반복문 내부에 또 다른 반복문을 2개 이상 중첩하여 사용할 수 있음
2개의 반복문이 중첩된 경우 이중반복문, 3개의 반복문이 중첩된 경우 삼중반복문이라고 부른다.

  • 이중반복문으로 구구단 전체를 출력하기
    for (let i = 2; i <= 9; i++) { // 2단 ~ 9단 까지,
      for (let j = 1; j <= 9; j++) { // 1 ~ 9 까지 1씩 증가하면서 곱하기
        console.log(`${i} x ${j} = ${i * j}`);
      }
    }

while문

while문은 초기값, 증감식 없이 조건식만 입력한 후 조건식의 평가결과가 true인 경우 코드블록 내부의 코드를 반복하여 실행함

let num = 0;

while (num < 3) {
	console.log(num); // 0 1 2
	num++
}

// for문 사용
for (let num = 0; num < 3; num++) {
	console.log(num); // 0 1 2
}

do...while문

do…while문은 while 뒤에 오는 조건식이 true로 평가되는 동안 do 뒤에 오는 코드블록 내부의 코드를 반복하여 실행함. while문과 차이는 do의 코드블록 내부의 코드가 최소 한 번은 실행된 후 조건식을 확인함

do {
	console.log('코드블록 내부의 코드는 최소 한 번은 실행됩니다.') 
	// '코드블록 내부의 코드는 최소 한 번은 실행됩니다.'
} while (false)

for문은 언제쓰고 while문은 언제쓰지?

for문과 while문의 용도는 명확하게 구분되지 않으나 주로 사용하는 상황은 있다.

  • for문을 사용하는 경우

    • 반복 횟수가 비교적 명확할 때
    • 배열, 문자열 내부를 순회할 때
    • 반복문의 중첩이 필요할 때
  • while문을 사용하는 경우

    • 반복 횟수가 명확하지 않을 때
profile
아무것도 모르는 코린이

0개의 댓글