while문
while문은 반복문 입니다.
반복문은 어떠한 값이 조건에 의해 그 조건에 만족하는 동안 계속 실행할 수 있습니다.
예를 들어 1을 200회 화면에 출력을 해야 한다면 1을 직접 200번 타이핑 하지 않고 반복문을 사용해 200회 출력할 수 있게 할 때 사용합니다.
사용법은 아래와 같습니다.
while(조건){ 조건에 만족할 동안 실행할 명령문 }
예를 들어서 1부터 10까지 출력하는 것을 while문으로 만들어 본다면 다음과 같습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>자바스크립트</title> <script> a = 1; while(a <= 10){ document.write(a); a++; } </script> </head> <body> </body> </html>
위의 소스를 보면 a의 값을 1로 선언 후 조건에는 a가 10보다 작거나 같다는 조건을 내세우고 있죠 그리고 그동안에 a의 값을 출력하는 명령문 그리고 a의 값을 1씩 올리는 a++가 있습니다.
위의 소스에 a++가 없다면 a가 값을 증가하면서 10에 도달하는 기능이 없으므로 무한루프에 걸리게 됩니다. 위의 소스를 실행할때 한번 테스트 해보시기 바랍니다.
다음은 1부터 10까지의 누적합을 구하는 소스입니다. 알고리즘을 파악해 보시기 바랍니다. ^^ 면접 보면 의외로 이런 간단한 문제 내는곳도 있습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>자바스크립트</title> <script> a = 1; sum = 0; while(a <= 10){ sum += a; document.write('누적합'+sum+"<br />"); a++; } </script> </head> <body> </body> </html>
이번엔 do~while문에 대해서 알아봅시다.
do ~ while문
위의 while문에서는 조건식이 참이면 명령문들을 실행했는데요 do ~ while문은 일단 한번 실행을 한 후 조건문 검사후 참이면 명령문을 실행하고 아니면 빠져 나온답니다. 일단 구조를 한번 살펴 봅시다.
do ~ while 문의 구조
조건식이 참이면 실행할 명령은 여기에 적습니다.
}
while(여기에는 조건식을 적습니다.)
그럼 한번 소스를 통해서 do ~ while문이 무엇인지 이해해 보도록 합시다.
a = 1; do{ document.write(a); } while(a==10)
위의 소스를 보면은 a=1입니다. 조건식을 보면 1==10이죠 즉 a가 10과 같을 동안 반복분을 실행하는거죠.
그런데 즉 조건식에서는 1== 10이 동일하지 않으므로 반복문을 실행하지 않죠. 하지만 do문에 있는 실행문을 한번은 실행을 한 후에 조건식을 검사를 하기 때문에 한번은 실행을 합니다.
즉, a값인 1이 한번은 출력이 된 후에 조건식을 검사후에 조건에 만족하지 않으면do문 안에 명령문을 실행하지 않습니다.
그럼 전체 소스를 보면서 테스트 해보시기 바랍니다. ^^
<!DOCTYPE html> <html> <head> <title> david's Web Laboratory</title> <style type="text/css"> </style> <script type="text/javascript"> a = 1; do{ document.write(a); a++; } while(a==10) </script> </head> <body> </body> </html>
이것으로 while 문에 대한 설명을 마치고,
다음 강좌에서는 for문에 대해서 알아봅시다.^^