Programming/JavaScript

반복문

잇나우 2019. 12. 11. 13:10
반응형

loop, iterate / 수천 수만번의 반복된 동작을 실행할때 사용하는 명령어

While

while(조건){     // 조건에는 boolean 타입 데이터가 들어가야함
	반복해서 실행할 코드
}

true인 동안엔 실행하여 false가 될때까지 반복한다.

//예제  조건이 무조건 true이기 때문에 무한반복 
while(true){
	document.write('coding everybody <br />');
}

무한 루프를 하게 되면 컴퓨터에게 부담을 줄수도 있고 프로그래밍하는데 오류가 발생하기 쉽다. 그래서 언제까지 반복할것인지 조건을 주어야한다. (반복조건)

// 반복조건 예제
var i = 0;
while( i < 10 ){    // i의 조건이 true냐 false냐
	document.write("coding everybody <br />");
    i = i + 1;
}

while은 반복할때 3가지의 구성요소가 필요하다.

// 3가지 구성요소
var i = 0;   		// 변수 초기화
while( i < 10 ){    	// 반복 조건
	document.write("coding everybody <br />");
    i = i + 1;		// 반복 실행
}

코드가 길어지면 각 구성요소들간에 가독성이 안좋아지고 구성요소의 값이 코드 중간에 변할 수도 있기 때문에 이럴때는 for문을 사용한다.

for

for(초기화; 반복조건; 반복이 될 때마다 실행되는 코드){
    반복해서 실행될 코드
}
for(var i = 0; i < 10; i = i + 1){       // 세미콜론(;)을 기준으로 구성요소를 나눔
	document.write('coding everybody ' +i+ '<br />')
}

for문의 단점은 각각의 구성요소들이 어떤 순서인가를 기억하고 있어야한다.

프로그래밍은 숫자를 카운팅할때 0부터 카운팅을 한다.

i = i + 1 은 i++로 바꿔서 쓸 수 있다.

 

1++와 ++1의 차이점

// iterate의 i를 보통 많이 사용한다.
i = 0;
alert(i++);

이것이 실행된 후에 i에 값이 1증가한다. 사용하는 그 순간에는 기존의 값을 사용한다는 것.

i = 0;
alert(++i);

0으로 변수를 선언하였지만 실행하면 바로 1이 된다. 사용할때 i의 값을 증가시키고 실행한다.

 

반복문의 제어

break 

for(var i = 0; i < 10; i++){
    if(i === 5) {             // i가 5와 같을때부터 반복문 중단 0~4까지 출력
        break;
    }
    document.write('coding everybody'+i+'<br />');
}

현재 반복문을 완전히 종료시키고 반복문 바깥으로 나가라라는 의미. (반복문 완전중지)

continue

for(var i = 0; i < 10; i++){
    if(i === 5) {        // i가 5와 같을때만 반복문을 중지. 다시 반복. 5를 제외한 나머지 전부 출력
        continue;
    }
    document.write('coding everybody'+i+'<br />');
}

조건이 true가 된 그 순간에만 종료시키고 다시 반복문은 계속 된다.

 

반복문의 중첩

반복문안에는 조건문을 넣을수도 (그 역도 가능), 반복문을 넣을수도 있다.

for(var i = 0; i < 10; i++){
        for(var j = 0; j < 10; j++){
          document.write('coding everybody '+i+j+'<br />'); 
        }
}

문자와 숫자를 결합하게 되면 자바스크립트는 숫자부분을 문자의 데이터 형식으로 자동으로 변환해준다.

document.write('coding everybody '+i+j+'<br />'); 
// 'coding everybody'은 문자열
// i와 j는 숫자
// '<br />'는 문자열
// 하지만 문자열+숫자가 결합되어 i와 j를 문자열 데이터 형식으로 자동변환

0으로 변수를 선언한 i와 j를 더하였지만 그 값이 더해지는 것이 아니라 01, 53, 87, ij 이런식으로 문자처럼 더해서 나온다. 

for(var i = 0; i < 10; i++){
        for(var j = 0; j < 10; j++){
          document.write('coding everybody '+i+j+'<br />'); 
        }
}

시작 i = 0부터 내려오게 되면서 안쪽 for문 j가 9까지 될때까지 출력하며 j가 10이 되면 false가 되기때문에 다시 위 쪽 for문으로 올라가서 i의 값이 1이 증가되고 다시 밑에 for문으로 내려와서 j = 0으로 변수를 초기화하여 j가 9까지 다시 안쪽 for문이 반복 j=10이 되면 안쪽 for문의 조건이 false가 되어 위쪽 for문으로 i가 1이 증가하며 계속 반복하며 i가 10이 되어 위쪽 for문의 조건이 false가 될때까지 반복한다.

디버그 : 오류를 해결하는 행위

디버거 : 오류 해결을 도와주는 도구

반응형

'Programming > JavaScript' 카테고리의 다른 글

배열  (0) 2019.12.11
함수  (0) 2019.12.11
조건문  (0) 2019.12.11
연산자  (0) 2019.12.10
주석과 기본적인 문법  (0) 2019.12.10