반복문 세번째 시간은 for문이다. for문은 앞서 말한 while문과 do ~ while문과 비슷한 구조를 가지고 있다.
for문은 반복 횟수를 정확히 알고 있을때 주로 사용하는 반복문이다.
대부분 반복문은 for문과 while문을 사용하는데 그 중에서도 for문을 더 많이 사용한다.
그 이유는 while문보다 좋은 가독성과 코드를 작성하는데 편리한
for문의 구조는 (초기식; 조건식; 증감식;)
{
실행문;
}
이런 구조이다.
for문의 실행순서는 while문과 되게 유사하다.
첫째 먼저 초기식이 제일 먼저 실행됩니다. 초기식이 실행된 후 조건식을 통해 조건비교 결과가 참이면 셋째 실행문을 실행시키고, 조건연산 결과가 거짓이면 for문을 종료합니다. 만약 실행문이 실행되었다면 블록 내부의 실행문을 모두 실행시키고 증감식을 실행 시킨 뒤 다시 조건식을 평가하게 됩니다.
그냥 눈으로 봐서는 이해가 잘 안갈 수도 있다. 그래서 이해하기 쉽게 간단한 for문 코드를 준비했다.
먼저 정수형 변수 num을 생성해 준다.
for문을 선언하고, 초기식에서 num에 1을 저장하고 그다음 조건식에서 반복할 횟수를 정해준다. (num < 4는 3까지 반복)
그 후 증감식에서 얼마씩 증가 할 것인지 선언해주고 실행문을 선언해준다.
이 코드를 실행 시켰을때
1부터3까지 출력하겠다.
1
2
3
이 출력된다.
for문은 생략과 탈출을 할 수 있는 제어 이동문을 사용 할 수 있다.
그 종류는 break, continue, return이 있다.
이 코드는 가장 기본적인 다중 for문이다.
이 코드를 실행하면 나오는 결과이다.
하지만 안쪽 for문에 break를 걸면 어떻게 될까?
안쪽 for문을 한번만 반복하고 for문이 종료되는것을 볼 수가 있다.
break가 있는 for문에서 break가 실행되고 난 뒤의 코드는 실행되지 않습니다.
그렇다면 continue는 어떤 기능을 가지고 있을까?
결과는 일반적인 이중for문을 실행시켰을때와 똑같은 결과가 나온다.
break는 반복문이 실행되는 for문을 종료시키고 탈출하였다면, continue는 해당 for문의 다음 반복으로 직행한다.
그래서 원래의 코드와 continue를 사용한 코드와 똑같은 결과가 나오는 것이다.
continue를 사용하면 continue가 사용된 이후의 코드는 실행하지 않는다. 그 이뉴는 continue가 나오는 순간 바로 다음 반복문으로 넘어가기 때문에 뒷내용은 실행 되지 않는것이다.
마지막으로 return을 사용하면 어떤 결과가 나올까? 정답은 매우 간단하다. main함수 끝에 return을 사용하는데 이때 return은 어떤 역활을 하나?
프로그램을 종료하는 역활을 한다. 마찬가지로 return이 사용된 해당 for문을 종료한다.
for문 문제
직각삼각형 만들기
첫번째 for문의 초기식에서 변수 x를 생성하고 0을 저장, 조건식에는 x가 4보다 작을때까지 반복 증감식은 1씩 증가.
안쪽 for문에 초기식에는 변수 z를 생성하고 0저장, 조건식에는 z가 2*x+1보다 작을때까지 반복 증감식은 1씩증가
x가 0일때 조건식은 참이므로 안쪽 for문 으로 이동
z는 0이고 0 < 1은 참이므로 *한개 출력 -> 증감식으로가서 z에 1저장한후 다시 조건비교 결과는 거짓 -> for문 종료
\n 실행
이 원리로 첫번째 for문의 조건식 x < 4에서 0(거짓)이 나올때까지 반복후 종료한다.
느낀점 : 반복문은 쉽게보이지만 결코 무시할 수 없다. 그런걸 알기에 더욱 더 꼼꼼하게 보고 넘어가야한다. 나는 c언어를 공부하면서 반복문과 포인터가 가장 어려웠던거같다. 반복문은 복잡해서 그렇지 한번 잘 정리해서 이해하고 넘어가면 그렇게 어렵진 않다. 이것으로 반복문에 대한 정리를 마친다.
온라인컴파일러를 사용함.