for문은 실행 구문을 반복적으로 수행하는 반복 제어문으로, 일반적으로 반복 횟수가 정해질 때 주로 사용한다. for문의 구문을 보면 몇 번 반복하는지 유추할 수 있어야 한다. for문의 기본 문법 구조는 아래와 같다.
for 다음의 소괄호 (초기식; 조건식; 증감식) 안에는 3개의 항목이 있고, 마지막 증감식을 제외하고 각각은 세미콜론 ( ; )으로 구분돼 있다. 컴파일러는 문법적으로 for문의 소괄호 안에 세미콜론이 2개 있는지 여부만 점검한다.
●초기식: for문이 시작될 때 딱 한 번 실행되고 다시는 실행되지 않는다. 따라서 for문 안에서만 사용할 변수는 주로 초기식에서 초기화한다.
●조건식: 실행 구문으로 들어가기 위한 유일한 출입구로, 이 조건식의 결과가 true가 나오는 동안은 실행 구문을 계속 반복한다. 만일 조건식이 false가 나오면 더 이상 반복을 수행하지 않고 for 문을 빠져나간다.
●증감식: for문의 실행 구문이 모두 수행된 후 닫힌 중괄호 ( } )를 만나면 다음번 반복을 위해 다시 이동하는 위치로 매회 반복이 수행할 때마다 호출된다.
초기식에 포함된 변수 선언 위치
초기식에 포함된 변수는 for 문의 내외부에서 선언할 수 있다. 먼저 외부에서 변수를 선언하고 초기식에서 초기화만 했을 때, for 문이 종료된 이후에도 변수는 사라지지 않는다.
반면 for 문의 초기식 안에서 선언했을 때는 for문의 내부에서만 사용할 수 있으며, 대부분 for문의 반복 횟수를 지정하기 위한 용도로만 변수를 사용하므로 초기식 내부에서 변수를 선언하는 이 방식이 주로 사용된다.
위에 말한 것처럼 컴파일러는 for문의 소괄호 ( () ) 안에 2개의 세미콜론(;)이 있는지만 문법적으로 점검한다. 초기식, 조건식, 증감식을 생략하더라도 세미콜론만 있으면 문법 오류는 발생하지 않는다. 그 결과, 몇 가지 특수한 for문 형태가 가능하다. 먼저 for문의 실행 구문으로 진입하는 유일한 입구인 조건식을 생략하면 컴파일러는 조건식에 true를 자동으로 삽입 한다. 즉 for 문으로 들어가는 문을 항상 열어 놓은 셈이다. 따라서 for 문에서 조건식을 생략하면 구문을 끊임 없이 반복(무한 루프)한다.
'Java' 카테고리의 다른 글
Java 07. break 제어 키워드 (제어문, 반복문) (0) | 2023.03.06 |
---|---|
Java 06 - 3. while문, do-while문 (제어문, 조건문, 반복문) (0) | 2023.03.06 |
Java 06 - 1. Switch case 선택 제어문 (제어문, 조건문, 반복문) (0) | 2023.03.05 |
Java 06. if문, else if, else (제어문, 조건문, 반복문) (0) | 2023.03.05 |
Java 05. Enum (이넘 열거형 자료 타입) (0) | 2023.03.04 |