Q1. for문에서 초기값, 조건, 증감식을 사용할 때 구분자로 ;를 사용하지만, 증감식 뒤에는 왜 ;를 붙이지 않는 건가?
for 문 구조

이 구조에서 각각의 부분을 나누기 위해 초기값과 조건, 조건과 증감식 사이에는 ;가 필요하다.
하지만 증감식 뒤에는 ;가 붙지 않는다.
증감식 뒤에는 왜 ;가 없을까?
for 문은 하나의 제어 구조(Control Structure) 로 동작하며, 초기값 → 조건 → 반복 실행 → 증감식의 순서로 실행된다.
즉, for 문 자체가 반복 실행을 위한 블록을 포함하기 때문에 증감식 이후에는 별도의 ;가 필요하지 않다.
잘못된 예제 (증감식 뒤에 ;를 붙인 경우)

이렇게 작성하면 컴파일 오류가 발생하거나 의도하지 않은 동작이 될 수 있다.
올바른 예제

여기서 증감식 i++는 반복이 끝난 후 실행되고, 다시 조건을 검사하여 반복 여부를 결정한다.
반대로 while 문과 비교해보자
while 문은 for 문과 달리 반복 조건만을 포함하므로, 반복할 코드 블록이 끝날 때 ;를 붙이지 않는다.

하지만 while 문을 단일 실행문으로 사용할 경우 ;가 필요할 수도 있다.

이처럼 while 문과 달리 for 문은 자체적으로 제어 흐름을 구성하기 때문에 증감식 뒤에 ;를 붙이지 않는 것이다.
✓ for 문에서는 초기값, 조건, 증감식을 ;로 구분하지만, 증감식 뒤에는 ;를 붙이지 않는다.
✓ for 문 자체가 반복을 제어하는 구조이므로 반복 코드 블록 {}의 시작을 바로 이어서 작성해야 한다.
✓ while 문과 비교하면, for 문은 반복을 위한 전체적인 제어 구조를 포함하기 때문에 문법적으로 차이가 있다.
728x90
'XR개발 > C언어' 카테고리의 다른 글
C언어 변수 범위와 순환 호출 (0) | 2025.01.27 |
---|---|
C언어 함수 (0) | 2025.01.26 |
C언어 반복문 (1) | 2025.01.25 |
C언어 조건문 (1) | 2025.01.24 |
05_Q&A 증감연산자는 어디에 활용되며 왜 중요한가?에 대한 물음.zip (1) | 2025.01.22 |