for문
for(초기화부분; 조건부분; 추가동작부분){
동작부분
}
for (let i = 1; i <= 10; i++) {
console.log(`${i} 최고!`);
}
//for 반복문에서 추가동작부분을 꼭 채울 필요 없다. //i를 1씩 증가시키는 부분이 동작부분에 들어가도 문제 X
for (let i = 1; i <= 10;) {
console.log(`${i} 최고!`);
i++;
}
//초기화부분에서 생성한 변수는 for문의 로컬변수다.
for (let i = 1; i <= 10; i++) {
console.log(`${i} 최고!`);
}
console.log(i); // Error !!
//초기화 부분도 반드시 채울 필요는 없다. 단,for문의 소괄호 안쪽 가장 첫번째 세미콜론은 생략할 수 없습니다.
//for문의 소괄호 안쪽은 반드시 세미콜론 2개가 필요하다.
let i = 1;
for (; i <= 10; i++) {
console.log(`${i} 최고!`);
}
실습 결과
높이: 1
*
높이: 3
*
**
***
높이: 5
*
**
***
****
*****
실습 작성 코드
function printTriangle(height) {
let star = "";
for(let i = 1; i <= height; i++){
star += "*";
console.log(star);
}
}
// 테스트 코드
console.log('높이: 1');
printTriangle(1);
console.log('높이: 3');
printTriangle(3);
console.log('높이: 5');
printTriangle(5);
while문
while (조건부분) {
동작부분;
}
//for문과 다르게 초기화부분이 없기때문에 전역변수(글로벌 변수)로 초기화부분을 작성해줘야함
let i = 1;
while (i <= 10;) {
console.log(`${i} 최고!`);
i++; //while문의 소괄호 안에 추가동작부분이 없기때문에 동작부분 구문에서 추가동작부분을 작성해줘야함
}
//while은 언제 써야할까?
// ==> 전역변수를 조건 비교에 사용하고 반복문 내부에서도 다루면서 결과적으로 반복문이 종료된 다음에도 이 변수를 사용해야 될 때
let i = 30;
while (i % 7 !== 0;) {
i++;
}
console.log(i);
//for문은 보통 조건 비교에 사용되는 값을 반복문 내부에서만 사용하고 반복이 끝나면 외부에서 사용할 수 없음
실습
정수 N의 약수는 N을 나누었을 때 나누어떨어지는 수. 만약 정수 i가 정수 N의 약수라면, N을 i로 나누었을 때 나머지가 0이 나와야함.
while문을 활용해서 정수 180의 약수를 모두 출력하고, 총 몇 개의 약수가 있는지 출력하는 프로그램을 작성
실습 결과
1
2
3
4
5
6
9
10
12
15
18
20
30
36
45
60
90
180
180의 약수는 총 18개입니다.
실습 작성 코드
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}개입니다.`);
구구단 만들기 실습 - 중첩 반복문 이용
실습 결과
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
.
.
.
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
실습 작성 코드 - for문
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= 9; j++) {
console.log(`${i} * ${j} = ${i * j}`);
}
}
실습 작성 코드 - while문
let i = 1;
while (i <= 9) {
let j = 1;
while (j <= 9) {
console.log(`${i} * ${j} = ${i * j}`);
j++;
}
i++;
}
피보나치 수열 만들기
실습 결과
1
1
2
3
5
8
13
21
.
.
.
4807526976
7778742049
12586269025
내가 작성한 코드
let current = 1;
let previous = 0;
console.log(current);
for(let i = 1; i < 50; i++){
current = current + previous;
console.log(current);
previous = current - previous;
}
실습 코드
//for문
let current = 1;
let previous = 0;
for (let i = 1; i <= 50; i++) {
console.log(current);
let temp = previous; // previous를 임시 보관소 temp에 저장
previous = current;
current = current + temp; // temp에는 기존 previous 값이 저장돼 있음
}
//while문
let current = 1;
let previous = 0;
let i = 1;
while (i <= 50) {
console.log(current);
let temp = previous; // previous를 임시 보관소 temp에 저장
previous = current;
current = current + temp; // temp에는 기존 previous 값이 저장돼 있음
i++;
}'Javascript, Typescript, React' 카테고리의 다른 글
| 쿼리스트링(=검색 파라미터) 다루는 방법 (0) | 2024.03.07 |
|---|---|
| TIL 13주 day2 - React에서 경로 이동, HTTP 통신 시 fetch, axios (0) | 2024.02.15 |
| react에서 map()사용 시 배열 항목의 key (0) | 2024.02.09 |
| Javascript - 반복문의 break와 continue (0) | 2023.01.18 |
| Javascript - switch문 (0) | 2023.01.17 |