Java

Java 06 - 2. for문 (제어문, 조건문, 반복문)

지댕댕 2023. 3. 5. 15:10
728x90

for문은 실행 구문을 반복적으로 수행하는 반복 제어문으로, 일반적으로 반복 횟수가 정해질 때 주로 사용한다. for문의 구문을 보면 몇 번 반복하는지 유추할 수 있어야 한다. for문의 기본 문법 구조는 아래와 같다.

for (초기식; 조건식; 증감식) {}

for 다음의 소괄호 (초기식; 조건식; 증감식)  안에는 3개의 항목이 있고, 마지막 증감식을 제외하고 각각은 세미콜론 ( ; )으로 구분돼 있다. 컴파일러는 문법적으로 for문의 소괄호 안에 세미콜론이 2개 있는지 여부만 점검한다.

●초기식: for문이 시작될 때 딱 한 번 실행되고 다시는 실행되지 않는다. 따라서 for문 안에서만 사용할 변수는 주로 초기식에서 초기화한다.

●조건식: 실행 구문으로 들어가기 위한 유일한 출입구로, 이 조건식의 결과가 true가 나오는 동안은 실행 구문을 계속 반복한다. 만일 조건식이 false가 나오면 더 이상 반복을 수행하지 않고 for 문을 빠져나간다. 

●증감식: for문의 실행 구문이 모두 수행된 후 닫힌 중괄호 ( } )를 만나면 다음번 반복을 위해 다시 이동하는 위치로 매회 반복이 수행할 때마다 호출된다.

초기식에 포함된 변수 선언 위치

초기식에 포함된 변수는 for 문의 내외부에서 선언할 수 있다. 먼저 외부에서 변수를 선언하고 초기식에서 초기화만 했을 때, for 문이 종료된 이후에도 변수는 사라지지 않는다.

변수 i를 외부에서 선언

반면 for 문의 초기식 안에서 선언했을 때는 for문의 내부에서만 사용할 수 있으며, 대부분 for문의 반복 횟수를 지정하기 위한 용도로만 변수를 사용하므로 초기식 내부에서 변수를 선언하는 이 방식이 주로 사용된다.

위에 말한 것처럼 컴파일러는 for문의 소괄호 ( () ) 안에 2개의 세미콜론(;)이 있는지만 문법적으로 점검한다. 초기식, 조건식, 증감식을 생략하더라도 세미콜론만 있으면 문법 오류는 발생하지 않는다. 그 결과, 몇 가지 특수한 for문 형태가 가능하다. 먼저 for문의 실행 구문으로 진입하는 유일한 입구인 조건식을 생략하면 컴파일러는 조건식에 true를 자동으로 삽입 한다. 즉 for 문으로 들어가는 문을 항상 열어 놓은 셈이다. 따라서 for 문에서 조건식을 생략하면 구문을 끊임 없이 반복(무한 루프)한다.

728x90