📝 TIL

[TIL] JS 제어문 활용

오늘 ONEUL 2022. 4. 11. 02:45

✍ Today I Learned

  • [while문 퀴즈 3개]
    • 2로 나눈 나머지가 0이면 짝수, 1이면 홀수
    • 정수 n의 약수를 모두 출력하려면? 정수 n을 최솟값인 1부터 최댓값인 자기 자신까지 나눠서 나머지가 0이면 약수
    • 3자리 양의 정수 s에서 1자리 양의 정수 a의 배수를 구하려면? 최솟값인 1부터 최댓값이 자기 자신 s를 a로 나눠서 나머지가 0이면 s안에서 a의 배수
    • 3번 퀴즈는 각각의 count를 가지기 때문에 else if 가 아니라 if로 나열해야 한다.
  • [중첩 반복문 활용 - 구구단 전체 출력]
    • 머리로 시뮬레이션이 가장 안 되는 중첩 반복문..
    • 침착하게 기준에 되는 반복 시점을 잘 생각해보기
    • 먼저 각 반복 시점을 생각하고 그 시점에 실행되어야 하는 구문을 떠올리면 어렵지 않다.
    • 중첩 반복문은 웬만하면 2번 이상 사용하지 않는 것이 좋다.
  • [중첩 반복문 활용 - 별탑을 쌓아보자]
    • 구구단 출력보다 비교적 쉽게 해결!
    • 직각삼각형이 아니라 다른 모양으로도 도전해보기.
  • [가위바위보 승률 예측]
    • 가위바위보는 for문 안에서 switch문과 삼항 연산자를 함께 사용하면 간단히 구현 가능하다.
    • 자바스크립트 내에서 html 문서가 변경되는 부분은 최소화하는 것이 좋다.
    • toPrecision()은 지정된 길이로 작성된 숫자를 문자열로 반환한다.
  • [로또 1등 당첨 확률]
    • 독립 확률이란 한 사건이 일어날 확률이 다른 사건이 일어날 확률에 영향을 미치지 않는다는 것을 의미한다.
    • 반복문을 이용하여 6번의 선택에서 정답 숫자 선택 확률을 전부 곱한다.
  • [주어진 문장에서 일치하는 단어 개수 찾기]
    • 유저에게 입력받은 keyword 변수를 정규식에 사용하기 위해 검색해본 결과 다음과 같은 방법을 찾을 수 있었다! (참고자료)
let pattern = "Abc";
let text = "abcabaAbcabbbcAbc";

let regexAllCase = new RegExp(pattern, "gi"); // 대소문자 구분 없이 모든 패턴을 찾음

console.log(text.replace(regexAllCase, '___')); // ___aba___abbbc___
console.log(text); // abcabaAbcabbbcAbc
  • string의 index로 비교하는 방법에서 아주 헷갈렸던 점은
    • 반복문 안에서 indexOf()로 keyword를 찾았다고 그 keyword의 index로 이동한 게 아니라는 것!
    • 따라서 찾은 index의 위치를 반환하는 indexOf()를 다시 사용하여 i=indexOf(keyword,i) 해주면 해결!
    • indexOf("str", index) - 특정 문자("str")가 처음으로 등장하는 index 반환. 두 번째 매개변수는 문자를 찾기 시작할 index 지정.
    • charAt(index) - 지정 index에 있는 문자를 반환.
  • 나를 믿고 내가 생각한 방향을 끝까지 밀고 나가자💪