---
# System prepended metadata

title: for문.. 루프.. 반복.. 그것은.. 인피니티.. 흡사 개미지옥..? for while...

---


# ❓ Test!
### Q1. 
#### 📌 1부터 100까지 더하는 for문을 만들고 결과를 출력하시오.
![image](https://hackmd.io/_uploads/rkB0sYMop.png)
### A1.
```javascript=
let result = ''; // 결과를 저장할 변수 초기화
for (let i = 1; i <= 100; i++) { // 1부터 100까지의 숫자에 대해 반복
  for (let j = 1; j <= 100; j++) { // 1부터 100까지의 숫자에 대해 반복
    result += '[' + i + ' + ' + j + ' = ' + (i + j) + '] '; // 결과를 result 변수에 추가
  };
};

a1.innerHTML = result; // 결과를 HTML의 특정 요소에 출력
```

```console=
// 콘솔이 덜덜 거리는 관계로 화면 출력
```

**[replit 확인](https://38b29643-f4c7-4d7d-bd65-d6f0e8dcd2f1-00-mkal0hz7eqxx.pike.repl.co/)**

### Q2. 
#### 📌 1부터 100까지 홀수만 출력하자.
### A2.
```javascript=
let oddNum = ''; // 결과를 저장할 변수 초기화
for (let i = 1; i <= 100; i += 2) { // 1부터 100까지의 숫자에 대해 2씩 증가하면서 반복
  i++; // i를 2씩 증가시킴
  oddNum += i + ' '; // 결과를 result 변수에 추가
}
a2.textContent = oddNum;
```
**[replit 확인](https://38b29643-f4c7-4d7d-bd65-d6f0e8dcd2f1-00-mkal0hz7eqxx.pike.repl.co/)**

### Q3.
#### 📌 1부터 50까지 369결과를 프린트하자.
```
1
2짝 
45 
짝...생략 
28 
짝짝 
짝짝 
짝짝 
```
### A3.
- 누나가 설명해 준 보너스 트랙과 다르다..
- 음.. 음... 으음.. 조금 더 찾아봐야겠다
```javascript=
for (let i = 1; i <= 50; i++) { // 1부터 50까지의 숫자에 대해 반복
  let output = ""; // 각 숫자에 대한 결과를 저장할 변수 output (초기화)

  // 일의 자리가 3,6,9 중 하나인지 나머지 값으로 확인 
  // ex) i = 11 => 11 / 10 = 나머지 1
  if (i % 10 === 3 || i % 10 === 6 || i % 10 === 9) output += '짝';

  // 현재 숫자를 10으로 나눈 결과의 정수 부분이 3, 6, 9 중 하나인지 확인
  // ex, i = 30 => 30 / 10 = 3
  if ((i / 10) === 3 || (i / 10) === 6 || (i / 10) === 9) output += '짝';

  // 만약 10의 자리와 1의 자리에 모두 3, 6, 9가 있으면 "짝짝"으로 표현
  if ((i % 10 === 3 || i % 10 === 6 || i % 10 === 9) && ((i / 10) === 3 || (i / 10) === 6 || (i / 10) === 9)) {
    output = '짝짝';
  }
  // if문에서 output에 "짝"이 할당되었는지 i랑 비교
  // 만약 output에 "짝"이 할당되었다면 그 값을 num 변수에 저장
  // 그렇지 않으면 숫자 i를 num 변수에 저장
  let num = output || i;
  // num 변수의 값을 화면에 출력
  a3.textContent += num + ' ';
} // for 루프 끝
```
**[replit 확인](https://38b29643-f4c7-4d7d-bd65-d6f0e8dcd2f1-00-mkal0hz7eqxx.pike.repl.co/)**

### Q4. 
#### 📌 1부터 100까지 홀수만 출력하자.
![image](https://hackmd.io/_uploads/HyBg3qfs6.png)
### A4.
- 처음엔 문제가 소숫점을 찾으라는 말인줄 알았다..
- 문제 그림을 보니 아닌 것 같았다.. 
- 혹시나 해서 [숫자가 소수이면](https://developer.mozilla.org/ko/docs/Learn/JavaScript/Building_blocks/Test_your_skills:_Loops#%EB%B0%98%EB%B3%B5%EB%AC%B8_3) 이 말을 몇 번을 구글링 해봤는지.. 아무도 모를 것이다.. 
- 누나랑 좀 다르다.. 재확인해봐야겠다..
```javascript=
// isPrime 함수 정의
function isPrime(number) {
  // 주어진 숫자가 1보다 작거나 같으면 소수가 아님
  if (number <= 1) {
    return false;
  }
  // 2부터 숫자 자신의 제곱까지의 숫자로 나누어보며 나누어떨어지는 수가 있는지 확인
  for (let i = 2; i * i <= number; i++) {
    // 만약 나누어떨어지는 수가 있다면 소수가 아님
    if (number % i === 0) {
      return false;
    }
  }
  // 나누어떨어지는 수가 없으면 소수임
  return true;
}

// 버튼 클릭 이벤트 처리
numBtn.addEventListener('click', function() {
  // 입력된 숫자 가져오기
  const inputNumber = document.getElementById('floatingInput').value;

  // 입력된 값이 숫자인지 확인
  if (!isNaN(inputNumber)) {
    // isPrime 함수를 사용하여 소수 여부 확인
    const result = isPrime(parseInt(inputNumber));

    // 소수인지 아닌지에 따라 알림창에 메시지 출력
    if (result) {
      alert(inputNumber + '는 소수입니다.');
    } else {
      alert(inputNumber + '는 소수가 아닙니다.');
    }
  } else {
    alert('숫자를 입력하세요.');
  }
});
```
**[replit 확인](https://38b29643-f4c7-4d7d-bd65-d6f0e8dcd2f1-00-mkal0hz7eqxx.pike.repl.co/)**