IT/Java

[Java] for문

Huitopia 2024. 2. 22. 17:28
728x90

for

for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다. for문은 실행문을 여러 번 반복 실행해주기 때문에 코드를 간결하게 만들어준다.

 

 

for문의 구조와 흐름

for( 초기화식; 조건식; 증감식 ) { 실행문 };
  1. for문이 처음 실행될때 초기화식 제일 먼저 실행된다.
  2. 조건식 평가 후 true면 실행문을 실행하고 false면 for문을 종료한다.
  3. 조건식이 true면 실행문을 모두 실행 후
  4. 증감식이 실행된다.
  5. 그리고 다시 2번을 실행 후 true면 3 ➡️ 4 ➡️ 2 순서로 진행하다 false이면 for문이 종료된다.
for( int i = 0, j = 1; i <= 10 && j <= 20; i++, j--) { 실행문 }

초기화식은 조건식과 실행문, 증감식에서 사용할 변수를 초기화하는 역할이다. 경우에 따라 초기화식이나 증감식이 둘 이상 있을 수 있다.

 

int i;
for (i = 0; i <= 10; i++) {...}
System.out.println(i)

초기화식에서 선언된 변수는 for문 블록 안에서만 사용 가능한 로컬 변수다. for문 밖에서 사용하고 싶다면 초기화식이 아닌 for문 이전에서 선언해야 한다.

 

1부터 100까지의 합을 구하는 예제 코드

    public static void main(String[] args) {
        int sum = 0;
        int i;

        for (i = 1; i <= 100; i++) {
            sum += i;
        }

        System.out.println("1~" + (i - 1) + " 합 : " + sum);
    }
  • i = 카운터 변수
  • sum = 합계 변수

 

for문 작성 시 초기화식에서 부동 소수점을 쓰는 float 타입은 사용하지 말아야 한다.

예제 코드

    public static void main(String[] args) {
        for (float i = 0.1f; i <= 1.0f; i += 0.1f) {
            System.out.println("i = " + i);
        }
    }

출력 결과

부동 소수점 방식의 float 타입은 연산 과정에서 정확히 0.1을 표현하지 못하기에 증감식에서 i에 더해지는 실제 값은 0.1보다 약간 클 수 있다. 

 

 

중첩 for문

바깐 for문이 한 번 실행할 때마다 중첩된 for문은 지정 횟수만큼 반복하고 다시 바깥 for문으로 돌아간다.

 

구구단 예제 코드

    public static void main(String[] args) {
        for (int i = 2; i <= 9; i++) {
        // i가 2에서 9까지 변하면서 8번 반복 실행
            System.out.println(i + "단");
            for (int j = 1; j <= 9; j++) {
            // 바깥 for문이 실행될 때 안의 for문 j는 1~9까지 변하면서 9번 반복 실행
                System.out.println(i + " X " + j + " = " + (i * j));
            }
        }
    }

출력 결과

728x90