[자바스크립트 기본]-제어문

ioioi·2023년 10월 31일
0

Javascript

목록 보기
5/21
post-thumbnail

📌 제어문

1. if문 / else if문

if (조건부분) {
동작부분
}
👉 조건부분이 맞으면 동작부분이 실행 됨.

let temperature = 110;

if (temperature <= 0) {
	console.log('물이 업니다.')
} else if (temperature < 100) {
	console.log('물이 얼지도 끓지도 않습니다.')
} else {
	console.log('물이 끓습니다.')
}

삼항 연산자 사용하기

const temp = 120;

let result = 
    temp <= 0 
	? '물이 업니다.' 
	: temp < 100 
	? '물이 얼지도 끓지도 않습니다.' 
	: '물이 끓습니다.';

console.log(result);

6. switch문

switch (비교할_값) {
  case 조건값_1:
    동작부분;
    break;      // 👉 조건이 맞으면 switch문을 빠져나옴
  case 조건값_2:
    동작부분;
    break;
  default:      // 👉 조건식을 만족하지 않을 때
    동작부분;
}
let myChoice = 2;
switch(myChoice) {
	case 1:
    	console.log('1을 선택하셨습니다.')
        break;
    case <2:
    	console.log('2를 선택하셨습니다.')
        break;
    case 3:
    	console.log('3을 선택하셨습니다.')
        break;    
    case 4:
    	console.log('4를 선택하셨습니다.')
        break;
    default:
    	console.log('1에서 4 사이의 숫자를 선택해 주세요.')
}

✨ if문 switch문 차이

if문

👉 범위를 만족하는 조건식을 만들 때
👉 조건식에서 반드시 등호 세 개를 입력해야 함

switch문

👉 특정한 값을 만족하는 조건식을 만들 때
👉 암시적 형변환 허용하지 않음 ❌❌❌❌❌
---> 값들을 비교할 때 자료형을 엄격하게 구분

문자 '2'와 숫자 2는 다름!
따라서 if문 조건식에 등호 세 개를 입력해야 한다.

let myChoice = '2';

switch(myChoice) {
  case 1:
    console.log('토끼를 선택한 당신, ...');
    break;
  case 2:
    console.log('고양이를 선택한 당신, ...');
    break;
  case 3:
    console.log('코알라를 선택한 당신, ...');
    break;
  case 4:
    console.log('강아지를 선택한 당신, ...');
    break;
  default:
    console.log('1에서 4사이의 숫자를 선택해 주세요.'); 
}

if (myChoice === 1) {
  console.log('토끼를 선택한 당신, ...');
} else if (myChoice === 2) {
  console.log('고양이를 선택한 당신, ...');
} else if (myChoice === 3) {
  console.log('코알라를 선택한 당신, ...');
} else if (myChoice === 4) {
  console.log('강아지를 선택한 당신, ...');
} else {
  console.log('1에서 4사이의 숫자를 선택해 주세요.');
}

if문의 조건식을 등호 두 개로 비교할 경우 서로 다른 값이 나옴

 let myChoice = '2';

switch(myChoice) {
  case 1:
    console.log('토끼를 선택한 당신, ...');
    break;
  case 2:
    console.log('고양이를 선택한 당신, ...');
    break;
  case 3:
    console.log('코알라를 선택한 당신, ...');
    break;
  case 4:
    console.log('강아지를 선택한 당신, ...');
    break;
  default:
    console.log('1에서 4사이의 숫자를 선택해 주세요.'); 
}

if (myChoice == 1) {
  console.log('토끼를 선택한 당신, ...');
} else if (myChoice == 2) {
  console.log('고양이를 선택한 당신, ...');
} else if (myChoice == 3) {
  console.log('코알라를 선택한 당신, ...');
} else if (myChoice == 4) {
  console.log('강아지를 선택한 당신, ...');
} else {
  console.log('1에서 4사이의 숫자를 선택해 주세요.');
}


switch ---> 1에서 4사이의 숫자를 선택해 주세요.
if ---> 고양이를 선택한 당신, ...

9. for 반복문

for (초기화부분; 조건부분; 추가동작부분) {
	동작부분
}

👉 초기화 부분에서 생성한 변수는 for문의 로컬 변수다
👉 for문 안에서 생성한 로컬 변수이기 때문에 for 반복문이 종료되고 나서 for 반복문 밖에서 변수를 사용하려고 하면 오류가 발생한다
👉 for문의 소괄호 안쪽은 반드시 세미콜론 2개가 필요하다

for (let i = 1; i <= 10; i++) {
	console.log(`${i} 반복 작성중입니다.`)
}

📝 퀴즈1 - 1이상 100이하의 짝수 출력

✅ 1부터 100까지 2로 나눴을 때 나머지가 0인 수 출력

for (let i = 1; i <= 100; i++) {
	if(i % 2 === 0) {
    	console.log(i)
    }
}

✅ 1부터 50의 수 * 2

for (let i =1; i <= 50; i++) {
	console.log(i * 2)
}

✅ 2부터 100의 수 + 2씩 증가

for (let i = 2; i <= 100; i += 2) {
	console.log(i)
}

📝 퀴즈2 - 삼각형 그리기

✅ 문자 + 문자

let star = '*'
let msg = ''

for (let i = 1; i <= height; i++) {
	msg += star;
	console.log(msg)
}
function printTriangle(height) {
	for (let i = 1; i <= height; i++) {
	  let result = '';
	  for (let j = 1; j <= i; j++) {
	    result += '*'
      }
	  console.log(result);
	}
}

13. While 반복문

조건부분이 ture로 판단 되는 동안 반복되며 false가 되는 순간 종료 됨.

while (조건부분) {
동작부분
}

let i =1; 👉 반복문 밖에서 글로벌 변수 작성

while (i <= 10) {  
	console.log(`${i} 반복 작성중입니다.`)
    i++; 👉 추가 동작 부분 안에 작성
}

📝 퀴즈1 - 1이상 100이하의 홀수 출력

✅ 2로 나누었을 때 나머지가 0이 아닌 경우 === 나머지가 1인 경우

let i = 1;

while (i <= 100) {
	if(i % 2 !== 0){
    	cosole.log(i);
    }
	i++;
<}

✅ 1부터 50의 수 * 2 - 1

let i = 1;

while (i <= 50) {
	console.log(i * 2 - 1);
    i++;
}

✅ 1부터 100의 수 + 2씩 증가

let i = 1;

while (i <= 100) {
	console.log(i);
    i += 2;
}

📝 퀴즈2 - 정수 180의 약수를 구하고 총 몇 개인지 출력

const N = 180<;
let i = 1;
let count = 0;

while (i <= N) {
  if (N % i === 0) {
    console.log(i);
    count++;
  }
  i += 1;
}

console.log(`${N}의 약수는 총 ${count}개입니다.`);

16. break와 continue

break : 이후의 동작을 멈춤
continue : 실행중인 동작을 건너 뛰고 다음 동작으로 넘어감 (무시 됨)

for문에서 continue

for (let i = 1; i <= 10; i++) {
  if (i % 2 === 0) {
    continue;
  }
  console.log(i);
}

👉 짝수값은 continue로 인해 건너 뛰게 됨으로 홀수값만 출력된다

while문에서 continue

let i = 1;

while (i <= 10) {
  if(i % 2 !== 0) {
    i++;
    continue;
  }
  console.log(i);
  i++;
}

👉 홀수값은 continue로 인해 건너 뛰게 됨으로 짝수값만 출력된다

while문 안의 if문에 continue 사용 시 무한 루프에 빠지지 않는지 확인이 필요!!

let i = 1;

while(i <= 10){
if(i % 2 !== 0){
continue;
}
console.log(i);
i++;
}

👉 1은 홀수이기 때문에 continue가 실행되면 다시 i값으로 반복문이 실행되는데 이 때, i = 1로 반복문이 재실행 된다. 즉, 1의 값으로 무한루프에 빠지게 됨.

while(i <= 10){
if(i % 2 !== 0){
i++; 👉 추가!
continue;
}
console.log(i);
i++;
}

퀴즈1

let i = 1;

while (i <= 20) {
  if (i === 5) {
    break;
  }
  console.log(i);
  i++;
}

👉 i값이 5일 경우 break문에 의해 즉시 반복문 종료 ---> 1부터 4까지 출력

퀴즈2

for (let i = 1; i <= 50; i++) {
  if (i % 2 !== 0) {
    continue;
  }
  console.log(i);
  i++;
}

👉 1부터 50까지의 수 중 짝수만 출력

19. 피보나치수열

1, 1, 2, 3, 5, 8, 13,21, 34, 55, ...
우선 피보나치 수열의 1번 항과 2번 항은 각각 1입니다. 3번 항부터는 바로 앞 두 항의 합으로 계산됩니다. 예를 들어서 3번 항은 1번 항(1)과 2번 항(1)을 더한 2이며, 4번 항은 2번 항(1)과 3번 항(2)을 더한 3입니다.

반복문을 활용해서 피보나치 수열의 첫 50개 항을 차례대로 출력하는 프로그램을 작성해 보세요. for문과 while문 중 어떤 반복문을 사용해도 상관없습니다.

let pre = 0; 
let cur = 1; 

for (let i = 1; let <= 50; i++) {
	console.log(cur);
    let temp = pre;  // 0 
    pre = cur;  // 1 
    cur = temp + cur;  // 0 + 1 = 1
}
profile
UIUX/Frontend

0개의 댓글

관련 채용 정보