19일차(2022.01.16 5시간 29분) Prep Guide Exercise

roadzmoon76·2022년 1월 16일
0

매일 공부

목록 보기
20/217

Switch

if문 대신 쓸수있는 대안 중 하나
swtich문이 사용에 좀더 제한이 있다. case의 값이 하나로 떨어지는 경우에만 사용할 수 있기때문
예를들어 18일차의 점수의 범위 따른 성적을 줄때 switch문은 에러가 남
그 범위의 숫자들을 일일히 case로 써줘야함
그래서 switch문을 잘 안씀

let menu = 8;
switch (menu) {
  case 1 :
    console.log("물건사기");
    break;
  case 2 :
    console.log("잔고확인");
    break;
  default :
    console.log("홈으로 돌아가기");
}

이런식으로 case를 다 정해주고. break로 마무리 함. case마다 break를 넘겨줘야 밑에 case들을 다 들리지 않음.
default는 else처럼 매칭되는 case가 없는 경우 실행.
if...else문보다 switch 문을 사용했을 때 가독성이 더 좋다면 switch 문을 사용하는 것이 좋음

삼항 연산식

여러 문장으로 되어있는 if문을 한문장으로 줄여줌

let menu = 5;

if (menu <= 3){
  console.log("범위 안의 숫자입니다");
} else {
  console.log("범위 밖의 숫자입니다");
}

삼항연산식 조건? true 일때 : false 일 때

let menu = 5;
let answer = menu <= 3? "범위 안의 숫자입니다" :
"범위 밖의 숫자입니다";
  • 조건에 따라 실행하는 내용이 한가지 일때 유용
  • 반환하고 싶은 값이 딱 하나만 코드에 있을 때

for문

for(let i =0; i<11; i++){
  console.log("나는 할수있다!", i)
}

for문엔 초기식; 조건식; 증감식 세가지 식이 들어감

만일 위의 코딩을 짝수에서만 나오게 하고싶다면?

  • 방법 1
for(let i =2; i<11; i++){
  if(i%2===0){
  console.log("나는 할수있다!", i)
  }
}
  • 방법 2
for(let i=2; i<11; i+=2){
  console.log("나는 할수있다!", i)
}

둘다 결과는 같지만 방법2 코드가 조금더 효율적인 코드다
방법2는 2칸씩 점프를 하므로 5번만 돌면 되지만, 방법1은 10번 다돌아서 데이터가 나오는데 시간이 더 걸린다
즉 코드를 짤때 무엇이 더 효율적인 코드인가를 항상 생각해보면 좋다

구구단을 for문으로 만들면?

for(let x=2; x<10; x++){
  for(let y=1; y<10; y++){
    console.log(x+"*"+y+"="+x*y)
  }
}

두개의 변수가 있으므로 이중for문을 쓰면됨
for문은 너무 많이 돌리면 프로그램 성능에 안좋음
그래서 3중 for문까진 잘 안쓰고, 2중 for문도 개발자들이 선호하지 않음

while문

let j=1
while(j<10){
  console.log("while문 실행", j);
  j++;
}

for문과 비슷한 용도지만 문법만 다르다
for문을 다 분해해둔 느낌
for문은 내가 for문을 돌리고 싶은 범위를 정확히 알때 사용하고,
while문은 내가 범위를 정확히 알지 못하지만, 어떤 순간까지 돌려야할때 사용(너가 어떤 상태라면 계속 돌려줘~ 언제까지 될진 나도 잘 모르지만^^)

while(buttonclick===true){
  console.log("while문 실행");
}

for문과 배열

for문은 특히 배열과 같이 쓰일때 시너지가 좋다

let fruit = ["banana", "apple", "mango", "orange"]

for(let i = 0; i<fruit.length; i++){
  console.log(fruit[i]);
}

이렇게 쓰면 배열 목록들을 일일히 다 안써도 됨

Prep Guide Loops Quiz 1


//반복문을 이용하여 위에 주어진 문자열을 역순으로 출력하는 코드를 작성해보세요.
let name = "ken";

for (let i = name.length; i>=1; i--) {
  console.log(name[i-1]);
}

Prep Guide Loops Quiz 2

//반복문을 이용하여 위에 주어진 문자열의 홀수번째 글자만 출력하는 코드를 작성해보세요.
let longText = "0i1a2m3k4e5n";

for (let i = 1; i<=longText.length; i+=2) {
  console.log(longText[i-1]);
}

Prep Guide Programming with Javascript part.1 exercise 1. FizzBuzz

for (let i = 1; i<=100; i++) {
  if (i%3===0 && i%5===0){
    console.log("fizzbuzz");
  } else if (i%3===0) {
    console.log("fizz");
  } else if (i%5===0) {
    console.log("buzz");
  } else {
    console.log(i);
  }
}

Prep Guide Programming with Javascript part.1 exercise 2. Biggest Number

let a = 10;
let b = 20;
let c = 30;

if (a-b>0) {
  if (a-c>0) {
    console.log(a);
  } else {
    console.log(c);
  }
} else if (b-c>0) {
  console.log(b);
} else {
  console.log(c);
}

Prep Guide Programming with Javascript part.1 exercise 3. Word Position

let word = "dolphin";
let sentence = "Where did Jane get the dolphin from, John?";

let indexOfD = sentence.indexOf(word);
let indexOfN = indexOfD + word.indexOf("n");

console.log(indexOfD, indexOfN);

Prep Guide Practice들 다 품

새로고침했더니 없던게 생겨서 다 품

반복문 문제 1 : 1부터 100까지 더하는 for 문을 만들고 결과를 출력

let result = 0;

for (let i = 1; i<=100; i++) {
  result += i
}

console.log(result);

반복문 문제 2 : 1부터 100까지 홀수만 출력

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

반복문 문제 3 : 1부터 50까지 369결과를 프린트

for ( let i = 1; i<=50; i++) {
  if (i === 33 || i === 36 || i === 39) {
    console.log("짝짝");
  } else if (String(i).includes("3")||String(i).includes("6")||String(i).includes("9")) {
    console.log("짝");
  } else {
    console.log(i);
  }
}

반복문 문제 4 : 주어진 숫자가 소수이면 true 아니면 false를 출력하는 프로그램

내일 이어서 풀기

profile
크론병걸린 자퇴생, 개발자되기

0개의 댓글