Web Front-end/JavaScript

[JS/Basic/문법/반복문] 자바스크립트 반복문

반복문은 이런 관점에서 이해해준다면, 더 와닿을 수 있습니다.(개인적인 관점입니다)

  • 프로그램은 사람의 일을 돕기위해 만들어졌습니다.
  • 반복적이고 단순한 작업을 기계가 대신하기 위해서 프로그램을 만들기 시작했습니다. 
  • 사람은 감정이 있고 육체의 한계가 있습니다. 따라서, 당연하게 "실수"라는 것이 발생합니다. 따라서,  단순하고 반복적인 작업이라면 기계를 쓰는것이 더 효율적입니다.

즉, 프로그램에서 반복은 필수적인 요소이고, 그만큼 많이 쓰이고 중요한 영역이라는거죠! 


반복문은 엄청 많은 작업에 쓸 수 있습니다. 예를들어, 구구단을 출력하는 간단한 프로그램에서 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);
}