Pawn 프로그래밍

반복문

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.

반복분(for statement)

C언어와 완전하게 동일하므로 자세한 설명보다는 간단히 설명하겠습니다.
while, do~while, for 사용이 가능합니다.
 
가령 변수 a의 값을 5000번 출력하는 모드를 만들어야 한다고 쳐봅시다.
 
  1. printf("%d", a);
  2. printf("%d", a);
  3. printf("%d", a);
  4. printf("%d", a);
  5. printf("%d", a);
  6. ...
 

for문

반복문은 특정 내용을 반복해주는 역할을 합니다. 말 그대로입니다.
반복문에는 크게 두 가지가 있는데 하나는 for문이고 또 다른 하나는 while문 입니다. 우선 for문부터 봅시다.
  1. for(new i = 0; i < 10; i++)
  2. {
  3. ...
  4. }
 
코드를 보시면, for 옆의 괄호 안에 그간 여러분이 배웠던 것들이 완전 집약되서 표시된 것을 볼 수 있습니다.
for 옆의 괄호 내부의 코드는 ;(세미콜론)을 기준으로 세 개의 파트로 나눌 수 있습니다.
그렇게 나눠보게 되면
 
 
  1. new i = 0
  2. i < 10
  3. i++
이라는 결과를 얻게 되지요.
 
                    첫째 문장은 i라는 변수를 선언하고 변수를 0으로 초기화 시키는 것입니다.
                    두번째 코드는 i가 10 이하라면 1을 반환하겠지요.
 
                                        마지막 코드는 i에 1씩 증감시켜줍니다.
 
1. 첫째 문장은 반복의 시작 지점을 표시해줍니다. 우리는 0부터 시작하는 것이고 변수에 무슨 값을 대입했느냐에 따라 이러한 시작 지점을 달리할 수 있습니다. 이렇게 첫번째 코드는 우리가 보통 '시작조건'이라고 부릅니다.
 
2. 두번째 코드는 '종결조건'이라고 합니다. 어떻게 하면 이 반복이 끝날 수 있는지를 표시해주는 것입니다. 즉 i가 어떤 방법을 통해 10보다 작지 않게 되는 순간 반복은 더 이상 이루어지지 않는 것입니다.
 
3. 세번째 코드는 '조건 변화식'이라고 합니다. for문에서 중괄호로 감싸진 부분을 실행한 이후에 시작조건에서 지정한 변수에 변화를주는 역할을 합니다. 여기서는 for문의 실행부분이 진행된 이후 변수 i를 1씩 증감시키고 있습니다.
 
그러니까 총 10번 반복한 뒤부터 이 반복문은 실행되지 않음을 추측할 수 있습니다.
 

break;

break가 for문이나 while문 내부에 쓰이게 되면, 해당 반복문을 탈출합니다.

즉,

  1. for(;;)
  2. {
  3. ...
  4. break;
  5. }
 
위와 같은 코드에서 break가 사용된 시점부터 반복은 중단되고 코드의 흐름이 2번으로 넘어갑니다.
2번부터 계속 실행되게 됩니다.

continue;

break와 비슷하게 continue라는 구문이 있습니다.
반복문의 흐름 도중에 continue를 만나게 되면 시작점으로 돌아갑니다.
무슨 뜻인냐하면
 
  1. for(new i = 0; i < 10; i++)
  2. {
  3. if(i == 5)
  4. continue;
  5. printf("%d", i);
  6. }
 
위와 같은 코드를 만들게 되면, 0부터 4까지 쭉 출력이 되다가 i가 5가 되는 순간에 continue가 되버립니다. 즉,
continue를 만나면 그 이하 내용을 무시하고 다시 반복의 시작점으로 돌아가 6부터 다시 진행하는 것입니다.
 

while문

while문은 for문보다 꽤 간단한 형식을 가집니다.

  1. while(조건)
  2. {
  3. ...
  4. 조건 변화식
  5. }
 
while문의 조건에는 참이 들어가는 동안에만 반복된다 했으므로 이 괄호 안에 아예 참 값을 넣어버리면 항상 반복이 될 것입니다. 이것도 while문에서 무한 루프를 구성하는 방법 중 하나입니다.
또한 while문에서는 continue와 break 역시 for문처럼 사용이 가능합니다. 
 
 
  • 봤어요 0명

댓글

댓글 본문