JAVA/JAVA

Java | 반복문_For문

pathas 2020. 1. 17. 16:33

★반복문

특정 조건에 만족하는 동안 코드를 반복해서 실행하는 구문

코드의 라인수가 많아지면 컴퓨터 실행속도가 저하되기 때문에
반복되는 코드들을 반복문으로 묶어서 작성하면 효율적임


☆For문

반복하는 횟수가 정해져 있는 경우에 사용

반복 횟수를 관리할 수 있기 때문에 반복문 중에서 가장 많이 쓰임


형식

for(① 초기화식; ② 조건식; ④ 증감식){
    ③ Java Code ;
}

for문 흐름

  1. 초기화식 설정
  2. 조건식 체크
  3. 코드 실행
  4. 증감식
  5. 조건식 체크
  6. 코드 실행
  7. 증감식
  8. ..... 조건식이 거짓이 될 때까지 실행

유형1_C++

초기화식에서 초기값 변수를 선언하는 유형

C++ 언어에서 사용하는 형식이라고 함

public class ForTest {
    public static void main(String[] args) {

        for (int i = 1; i <= 3; i++) {
         // int i = 1; 로 초기값 변수 선언
            System.out.println("for문 연습" + i);
        }
        /*
        for문 연습1
        for문 연습2
        for문 연습3
        */
    }
}

유형2_C

for문 밖에서 초기화식에 해당하는 변수를 선언하는 유형

C언어에서 사용하는 형식이라고 함

public class ForTest {
    public static void main(String[] args) {
        int k;
         // for문 밖에서 k 변수 선언
        for (k = 10; k > 7; k--) {
            System.out.println("Test" + k);
        }
         /*
         Test10
         Test9
         Test8
         */
    }
}

유형3_초기화식 생략

초기화식 전체가 for문 밖에서 작성되어 for문 내부에서 초기화식 작성이 생략된 유형

이미 변수가 다른 곳에서 초기화되어 중복으로 초기화할 필요가 없을 때 생략

public class ForTest {
    public static void main(String[] args) {
        int k = 10;
         // 초기화식이 for문 밖에서 작성

        for (; k > 7; k--) {
        // 초기화식 생략
            System.out.println("Test" + k);
        }
         /*
         Test10
         Test9
         Test8
         */
    }
}

유형4_증감식 생략

증감식을 생략할 수는 있지만 for문 안에 작성되어야 함

증감식 연산이 복잡하거나 다른 연산 결과에 영향을 받는 경우 생략

public class ForTest {
    public static void main(String[] args) {

        for(int c = 1; c <= 3; ) {
            System.out.println("3번 반복"+c);
            c++;
        }
         /*
         3번 반복1
         3번 반복2
         3번 반복3
         */

         // 무한 Loop
         c++;
        for(int c = 1; c <= 3; ) {
            System.out.println("3번 반복"+c);
        }
         /*
         증감식이 for문 밖에 작성되면
         for문에 영향을 미치지 못하기 때문에
         무한 루프가 발생함 
         */
    }
}

유형5_조건식 생략

for문의 수행을 멈추기 위해 for문 내부에 if문으로 조건문을 작성하는 경우

public class ForTest {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 0; ; i++) {
            sum += i;
            if (sum > 200)
                break;
            // for문 내부에 if문으로 반복을 중단할 조건을 작성
        }
        System.out.println("sum: " + sum);
         // sum: 210
    }
}

유형6_요소 모두 생략

모든 요소를 생략하고 무한 반복하는 경우에 사용

while(true)와 동일하게 동작함

public class ForTest {
    public static void main(String[] args) {
        for(;;) {
            System.out.println("무한 반복");
        }
        /*
        무한 반복
        무한 반복
        무한 반복
        ........
        */
    }
}

사용례_1부터 100까지의 합 구하기

public class ForTest {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1; i<=100; i++) {
            sum += i;
        }
        System.out.println("sum: "+sum);
         // sum: 5050
    }
}

소스코드 작성시 반복되는 구문을 작성할 때 가장 많이 사용되는 For문에 대해 살펴보았습니다.

For문에도 여러가지 유형이 있고 아주 다양한 상황에서 활용된다고 하기 때문에

For문에 대해 자세히 알아두고 반복 숙달 해두면 프로그램 작성시 도움이 될 것입니다.