반복문은 이런 관점에서 이해해준다면, 더 와닿을 수 있습니다.(개인적인 관점입니다)
- 프로그램은 사람의 일을 돕기위해 만들어졌습니다.
- 반복적이고 단순한 작업을 기계가 대신하기 위해서 프로그램을 만들기 시작했습니다.
- 사람은 감정이 있고 육체의 한계가 있습니다. 따라서, 당연하게 "실수"라는 것이 발생합니다. 따라서, 단순하고 반복적인 작업이라면 기계를 쓰는것이 더 효율적입니다.
즉, 프로그램에서 반복은 필수적인 요소이고, 그만큼 많이 쓰이고 중요한 영역이라는거죠!
반복문은 엄청 많은 작업에 쓸 수 있습니다. 예를들어, 구구단을 출력하는 간단한 프로그램에서 2*1,2*2...와같이 사람이 하나하나 입력해도 되겠지만, 반복문을 이용하면 더 간단하게 풀어낼 수 있습니다.
while/do-while
- 반복문을 작성하는 방법 중 하나입니다. 아래와 같이 작성해주면 됩니다.
while (조건) {
//참일시 , 반복
}
// while은 조건부터 검사하고, do-while은 일단 실행부터 하고, 조건을 검사합니다.
do{
//일단 실행하고, 조건 검사
} while(조건)
- while은 true/false의 조건에 따라서 반복을 할 때, 유용하게 쓸 수 있습니다. (저는 조건에 따라 반복을 하면 while, 선형적이고 반복횟수가 정해져있으면 for을 사용합니다)
- 보통, 무한반복을 이용할 때, while을 씁니다. 무한 반복으로 while을 쓸 때는 반복을 언제 탈출(escape)할지 정해야합니다.
- while문으로 작성된 코드는 for문으로 바꿀 수 있고, for문으로 작성된 코드도 while문으로 바꿀 수 있습니다. 따라서, 무엇을 쓰든 상관은 없습니다. 자신이 더 "잘 작성할 수 있는" 스타일로 작성하면 됩니다.
//할당량을 채운다.
let Todo = prompt("오늘의 할당량을 입력해주세요",100);
let Isdone = false;
let done = 0
while(!Isdone){
done++;
if(done>=Todo){
Isdone=true;
}
}
for
- 가장 많이 사용하는 반복문입니다. 아래와 같이 사용 합니다.
for(start(시작); 조건; step(증감)){
조건이 참일 시, 반복
}
- 예를들어, 1~10까지 반복을 한다면, 아래와 같이 작성할 수 있습니다.
for(let i=1; i<=10;i++){
console.log(i);
}
// 보통 프로그래밍은 0부터 시작하는 경우가 많습니다.
for(let i=0; i<10;i++){
console.log(i+1);
}
// 증감식에는 i+2,i+3등 반복하는 간격을 정해줄 수 있습니다.
for(let i=0; i<10;i+=2){
console.log(i);
}
for ..of
- Iterator를 반복할 때 사용하는 반복문 형태입니다. 대표적인 Iterator는 Array , Generator로 생성한 객체들 등이 있습니다.
- Iterator를 전부 순회할 때까지 반복을 합니다. 주로, 함수형 프로그래밍 형태에서 자주 등장합니다 . for과 차이가 있습니다.
for (변수 of iterator){
반복
}
//example
const arr=[1,2,3,4,5]
for (const a of arr){
console.log(a);
}
for ..in
- 주로 객체를 순회할 때 , 이용하는 for문 입니다.
- Array등과 같은 iterator에서 사용은 권장되지 않습니다. 단, key-value쌍을 이루는 자료형이라면, 고려해볼만 합니다.
const obj ={
name:"mapin",
age:24,
gender:"male",
}
for (let key in obj){
console.log(key);
console.log(obj[key]);
}
break,continue
- 반복문에 특정 조건을 부여하는 명령어 입니다.
- break는 해당 지점에서 전체 반복을 "중지" 하라는 뜻이고, continue는 전체 반복은 진행하되, 조건에 맞게 반복을 조절 하고 싶을 때 쓰는 명령어 입니다.
- 예를들어, 0~10까지 홀수를 출력하고 싶다면, 아래와 같이 작성이 가능해집니다.
for (let i =0 ; i<=10;i++){
// 홀수인 경우, continue 이하의 논리는 실행하지 않고, 바로 다음 반복 실행
if (i %2 !=0) continue;
console.log(i);
}
'Web Front-end > JavaScript' 카테고리의 다른 글
[JS/Basic/TDD,BDD] 자바스크립트 테스팅 연습 (0) | 2022.07.27 |
---|---|
[JS/Basic/함수] 자바스크립트 함수 (0) | 2022.07.26 |
[JS/Basic/문법/연산자,조건문] 자바스크립트 연산자, 조건문 (0) | 2022.07.25 |
[JS/Basic/문법/입출력] 자바스크립트 입출력 (0) | 2022.07.25 |
[JS/Basic/문법/변수] 자바스크립트 변수 (0) | 2022.07.25 |