호쌤
호쌤 Just For Fun

[JS] 프로그램의 흐름제어(2) - 반복문

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[JS] 프로그램의 흐름제어(2) - 반복문≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[JS] 프로그램의 흐름제어(2) - 반복문

주어진 조건을 충족하는 동안 {}안의 구문을 반복적으로 수행하도록 설정하는 구문 형식을 반복문이라고 하며 기본적으로 while문과 for문의 두 가지 종류가 있습니다.

#01. while문

  • 주어진 조건이 참을 충족하는 동안 수행되는 문법
  • 초기식, 조건식, 증감식의 요소를 충족해야 성립된다.
1
2
3
4
5
초기식
while (조건식) {
    ... 반복적으로 수행될 구문 ...
    증감식
}
1
2
3
4
5
6
var x = 1;            // 초기식 -> 반복에 사용될 조건값을 지정한다.
while (x <= 10) {     // 조건식 -> x가 10보다 작거나 같은 동안 반복수행
    var k = "x=" + x; // 반복이 진행되는 동안 수행할 명령
    console.log(k);
    x = x + 1;        // 증감식 -> 조건에 사용되는 값을 변경
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
x=1
x=2
x=3
x=4
x=5
x=6
x=7
x=8
x=9
x=10

1) 구구단 7단 출력하기

1
2
3
4
5
6
7
8
9
var y = 1;         // 초기식
while (y < 10) {   // 조건식 -> 10보다 작다이므로 10은 포함되지 않음.
    var z = 7 * y; // 반복이 진행되는 동안 수행할 명령

    var str = "7 x " + y + " = " + z;
    console.log(str);

    y += 1;        // 증감식 -> y가 1씩 증가함
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63

2) 반복이 진행되는 동안 결과의 누적합 구하기

누적합을 구하기 위해서는 합산에 사용할 변수를 0으로 초기화 해 놓고 반복문 안에서 누적 합산을 수행한다.

1부터 10까지의 총 합 구하기

1
2
3
4
5
6
7
8
var x = 1;        // 초기식
var sum = 0;      // 총 합을 누적해서 저장할 변수

while (x <= 10) { // 조건식 -> x가 10보다 작거나 같은 동안 반복수행
    sum += x;
    console.log("x=" + x + ", sum=" + sum);
    x++;          // 증감식 -> 조건에 사용되는 값을 변경
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
x=1, sum=1
x=2, sum=3
x=3, sum=6
x=4, sum=10
x=5, sum=15
x=6, sum=21
x=7, sum=28
x=8, sum=36
x=9, sum=45
x=10, sum=55

3) 값의 변화단계 조절하기

0부터 100전(=99)까지 10씩 증가

1
2
3
4
5
6
var a = 0;             // 초기식
while (a < 100) {      // 조건식
    var k = "a=" + a;
    console.log(k);
    a += 10;           // 증감식
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
a=0
a=10
a=20
a=30
a=40
a=50
a=60
a=70
a=80
a=90

10부터 0전(=1)까지 2씩 감소

1
2
3
4
5
6
var b = 10;
while (b > 0) {
    var k = "b=" + b;
    console.log(k);
    b -= 2;
}
▶ 출력결과
1
2
3
4
5
b=10
b=8
b=6
b=4
b=2

#02. For문

초기식, 조건식, 증감식이 하나의 괄호() 안에 모두 명시되는 형태.

1
2
3
for (초기식; 조건식; 증감식) {
    ...
}

실행 순서

  1. 초기식을 실행한다.
  2. 조건식을 판별한다.
    • 조건식이 참인 경우 {}안을 1회 실행하고 증감식으로 이동한다.
      • 증감식을 실행한 후 다시 조건식으로 이동한다.
    • 조건식이 거짓인 경우 {} 블록을 실행하지 않고 빠져나간다.
1
2
3
4
for (var x = 1; x <= 10; x++) {
    var k = "x=" + x;
    console.log(k);
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
x=1
x=2
x=3
x=4
x=5
x=6
x=7
x=8
x=9
x=10

1) 구구단 7단 출력하기

1부터 9까지 1씩 증가하면서 수행함

1
2
3
4
5
for (var y = 1; y < 10; y++) {
    var z = 7 * y; // 반복이 진행되는 동안 수행할 명령
    var str = "7 x " + y + " = " + z;
    console.log(str);
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63

2) 반복이 진행되는 동안 결과의 누적

1부터 10까지의 총 합 구하기

반복이 시작되기 전에 값이 누적될 변수를 미리 준비해 놓는다.

1
2
3
4
5
6
7
var sum = 0;            // 총 합을 누적해서 저장할 변수

for (var x=1; x<=10; x++) { // 조건식 -> x가 1부터 10까지 1씩 증가하면서 수행
    sum += x;
    var k = "x=" + x + ", sum=" + sum
    console.log(k);
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
x=1, sum=1
x=2, sum=3
x=3, sum=6
x=4, sum=10
x=5, sum=15
x=6, sum=21
x=7, sum=28
x=8, sum=36
x=9, sum=45
x=10, sum=55

3) 값의 변화 단계 조절하기

0부터 99까지 10씩 증가하는 범위 안에서의 반복 수행

1
2
3
4
for (var a=0; a<=99; a+=10) {
    var k = "a=" + a;
    console.log(k);
}
▶ 출력결과
1
2
3
4
5
6
7
8
9
10
a=0
a=10
a=20
a=30
a=40
a=50
a=60
a=70
a=80
a=90

10부터 1까지 2씩 감소하는 범위 안에서의 반복 수행

1
2
3
4
for (var b=10; b >= 1; b-=2) {
    var k = "b=" + b;
    console.log(k);
}
▶ 출력결과
1
2
3
4
5
b=10
b=8
b=6
b=4
b=2

#03. 반복문 안에서의 흐름 제어

반복을 몇 번 수행해야 하는지 판단할 수 없는 경우 무한루프 형태로 지정하고 특정 조건이 충족되는지에 따라 반복의 중단 여부를 결정한다.

반복문의 흐름제어 기능을 갖는 키워드

  • next: 조건식으로 강제 이동
  • break: 현재 반복문을 강제로 종료하고 블록을 빠져 나간다.

1) while문을 사용한 무한루프 패턴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var y = 0;
while (true) {      // 무조건 반복. 종료되지 않는다 (무한루프)
    var y = y + 1;

    if (y % 2 === 0) {
        continue;
    }

    if (y > 10) {
        break;      // 반복문을 강제로 종료
    }

    console.log("Hello World :: " + y);
}
▶ 출력결과
1
2
3
4
5
Hello World :: 1
Hello World :: 3
Hello World :: 5
Hello World :: 7
Hello World :: 9

2) for문을 사용한 무한루프 패턴

continue, break 키워드는 while문과 for문에서 모두 동일하게 동작한다.

1
2
3
4
5
6
7
8
9
10
11
12
var z = 0;
for (var z = 0; true; z++) {      // 무조건 반복. 종료되지 않는다 (무한루프)
    if (z % 2 === 0) {
        continue;
    }

    if (z > 10) {
        break;      // 반복문을 강제로 종료
    }

    console.log("Hello World :: " + z);
}
▶ 출력결과
1
2
3
4
5
Hello World :: 1
Hello World :: 3
Hello World :: 5
Hello World :: 7
Hello World :: 9

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[JS] 프로그램의 흐름제어(2) - 반복문≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus