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 문의 구조

do{
조건식이 참이면 실행할 명령은 여기에 적습니다.
}
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문에 대해서 알아봅시다.^^