[JavaScript] STUDY 6 - for 구문의 응용

PSEveloper ㅣ 2020. 2. 6. 23:29

 

 

1) 연습문제: 1부터 20까지 정수 중에서 짝수인 정수를 출력하는 프로그램을 작성하라.

 

 ● 풀이 ① - for 구문을 이용해 반복문을 작성할 때 고려할 사항

 

  • 반복해서 실행할 문장     →     document.writeIn(1);
  • 반복해서 실행할 문장에서 변하는 값 (인덱스 변수를 이용해서 표현)    →     i = 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
  • 인덱스 변수의 초기값 = for 구문의 첫 번째 표현식(초기식)     →     i = 2;
  • 인덱스 변수의 범위 = for 구문의 두 번재 표현식(조건식)     →     i <= 20;
  • 인덱스 변수의 변화 = for 구문의 세 번째 표현식(종료식, 증가식)     →     (i = i + 2) → (i += 2)
<script>

    // 풀이 (1)
    for ( var i = 2; i <= 20; i += 2)
    	document.writeln(i);

</script>

 ● 풀이 ② - for 구문을 이용해 반복문을 작성할 때 고려할 사항

 

  • 반복해서 실행할 문장     →     if (1 % 2 == 0) document.writeIn(1);
  • 반복해서 실행할 문장에서 변하는 값 (인덱스 변수를 이용해서 표현)    →     i = 1, 2, 3, 4, ..., 19, 20
  • 인덱스 변수의 초기값 = for 구문의 첫 번째 표현식(초기식)     →     i = 1;
  • 인덱스 변수의 범위 = for 구문의 두 번재 표현식(조건식)     →     i <= 20;
  • 인덱스 변수의 변화 = for 구문의 세 번째 표현식(종료식, 증가식)     →     i++
<script>

    // 풀이 (2)
    for ( var i = 1; i <= 20; i++)
    	if ( !(i % 2) )
        	document.writeln(i);

</script>

 

 

2) 연습문제: 1부터 100까지 정수 중에서 3의 배수이거나 7의 배수인 정수를 출력하는 프로그램을 작성하라.

 

<script>

    for ( var i = 1; i <= 100; i++)
    	if (i % 3 == 0 || i % 7 == 0)
        	document.writeln(i);

</script>

 

3) for 구문을 통해 배열에 접근하는 방법

 

  • 배열의 모든 원소를 출력하기 위해서는 배열의 원소의 인덱스 번호를 통해 일일이 입력해야 한다.
  • 그러므로 for 구문을 사용해 배열의 원소들을 출력하는 것이 훨씬 수월하다.

 

예시) 배열 numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]의 모든 원소를 출력하라.

 

 

● for 구문을 이용해 반복문을 작성할 때 고려할 사항

 

  • 반복해서 실행할 문장     →     document.writeIn( numbers[0] );
  • 반복해서 실행할 문장에서 변하는 값 (인덱스 변수를 이용해서 표현)    →     i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 인덱스 변수의 초기값 = for 구문의 첫 번째 표현식(초기식)     →     i = 0;
  • 인덱스 변수의 범위 = for 구문의 두 번재 표현식(조건식)     →     (i < 10) = (i < 배열 numbers의 크기) = (i < numbers.length)
  • 인덱스 변수의 변화 = for 구문의 세 번째 표현식(종료식, 증가식)     →     i++
<script>

    var numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    for (var i = 0; i < numbers.length; i++)
    	document.writeln(numbers[i]);

</script>

 

(1) 연습문제: 배열 numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]의 원소를 역순으로 출력하는 프로그램을 작성하라.

 

● for 구문을 이용해 반복문을 작성할 때 고려할 사항

 

  • 반복해서 실행할 문장     →     document.writeIn( numbers[0] );
  • 반복해서 실행할 문장에서 변하는 값 (인덱스 변수를 이용해서 표현)    →     i = 9, 8, 7, 6, 5, 4, 3, 2, 1
  • 인덱스 변수의 초기값 = for 구문의 첫 번째 표현식(초기식)     →     (i = 9) = (i = number.length - 1)
  • 인덱스 변수의 범위 = for 구문의 두 번재 표현식(조건식)     →     i >= 0
  • 인덱스 변수의 변화 = for 구문의 세 번째 표현식(종료식, 증가식)     →     i--

 

<script>

    var numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    for (var i = numbers.length - 1; i >= 0; i--)
    	document.writeln(numbers[i]);

<script>

 

 

(2) 연습문제: 배열 numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]에서 짝수 번째 원소를 출력하는 프로그램을 작성하라.

 

<script>

    // 짝수 번째 원소를 출력하기 위해서 짝수 번째 원소의 인덱스는 홀수가 되어야 한다.
    // 짝수 번째 원소의 인덱스: 1, 3, 5, 7, 9
    var numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    for ( var i = 0; i < numbers.length; i++)
    	if (i % 2)
        	document.writeln(numbers[i]);

</script>

 

(3) 연습문제: 배열 numbers의 모든 원소들 중에서 15보다 큰 원소만 출력하는 프로그램을 작성하라.

 

<script>

    var numbers = [4, 17, 32, 3, 8, 13, 41, 27, 16, 1];
    
    for (var i = 0; i < numbers.length; i++)
    	if (numbers[i] > 15)
        	document.writeln(i);

</script>