검수요청.png검수요청.png

"루프 (프로그래밍)"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
 
(사용자 2명의 중간 판 5개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''루프'''(loop)란 반복문(反復文)을 말한다. '''for''' 또는 '''while''' 등을 사용한다. 루프에서 벗어나기 위해서 break 또는 return 명령어를 사용한다. 영원히
+
'''루프'''(loop)란 프로그래밍에서 '''반복문'''(反復文)을 말한다. '''for''' 또는 '''while''' 등을 사용한다. 루프에서 벗어나기 위해서 [[브레이크 (프로그래밍)|브레이크]](break) 또는 [[리턴]](return) 명령어를 사용한다. 영원히 벗어나지 못하고 무한히 반복되는 반복문을 [[무한루프]]라고 한다. 프로그램 개발 시 무한루프에 빠지지 않도록 주의해야 한다.
벗어나지 못하고 무한히 반복되는 반복문을 무한루프라고 한다. 프로그램 개발 시 무한 루프에 빠지지 않도록 주의해야 한다.
 
  
 
== 개요 ==
 
== 개요 ==
반복이라는 것은 간단하게 말해 '같은 일을 되풀이함' 이라는 사전적 의미를 가지고 있다. 사람의 힘으로 반복적인 작업을 한다는 건 그다지 적합하지 않다. 반복하면 할수록 심리적으로 지치고, 지루해지며 그리고 치명적인 실수가 나올 수도 있기 때문이다. 그렇게 때문에 반복적인 작업은 컴퓨터에게 적합하다고 할 수 있다.
+
[[반복]]이라는 것은 간단하게 말해 '같은 일을 되풀이함' 이라는 사전적 의미를 가지고 있다. 사람의 힘으로 반복적인 작업을 한다는 건 그다지 적합하지 않다. 반복하면 할수록 심리적으로 지치고, 지루해지며 그리고 치명적인 실수가 나올 수도 있기 때문이다. 그렇게 때문에 반복적인 작업은 컴퓨터에게 적합하다고 할 수 있다.
  
 
컴퓨터는 반복적인 작없에 있어 심리적인 압박을 느끼지 못하고, 사람보다 훨씬 빠른 속도로 할 수 있다. 간단한 예시를 들어 출력을 해주는 printf를 이용하여 "Hello, Worㅣd!"를 10번 찍어야 한다고 가정 했을때 번거롭긴 하지만 그다지 어려운 일은 아니다.  
 
컴퓨터는 반복적인 작없에 있어 심리적인 압박을 느끼지 못하고, 사람보다 훨씬 빠른 속도로 할 수 있다. 간단한 예시를 들어 출력을 해주는 printf를 이용하여 "Hello, Worㅣd!"를 10번 찍어야 한다고 가정 했을때 번거롭긴 하지만 그다지 어려운 일은 아니다.  
74번째 줄: 73번째 줄:
 
     scanf_s("%d", &num);
 
     scanf_s("%d", &num);
 
   
 
   
  }while(num!= 0);<ref name="do-while예제"><[https://prosto.tistory.com/83 do-while 예제]><<코딩팩토리>></ref>
+
  }while(num!= 0);<ref name="do-while예제"><[https://prosto.tistory.com/83 do-while 예제]><<prosto>></ref>
  
 
=== 무한 루프 예제 ===
 
=== 무한 루프 예제 ===
113번째 줄: 112번째 줄:
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 
 
* [[반복문]]
 
* [[반복문]]
 +
* [[무한루프]]
 +
* [[C언어]]
 +
* [[자바]]
 +
* [[파이썬]]
 +
* [[객체지향 프로그래밍]]
 +
* [[프로그래밍 언어]]
 +
* [[루프]]
  
{{프로그래밍|토막글}}
+
{{프로그래밍|검토 필요}}

2021년 8월 24일 (화) 02:53 기준 최신판

루프(loop)란 프로그래밍에서 반복문(反復文)을 말한다. for 또는 while 등을 사용한다. 루프에서 벗어나기 위해서 브레이크(break) 또는 리턴(return) 명령어를 사용한다. 영원히 벗어나지 못하고 무한히 반복되는 반복문을 무한루프라고 한다. 프로그램 개발 시 무한루프에 빠지지 않도록 주의해야 한다.

개요[편집]

반복이라는 것은 간단하게 말해 '같은 일을 되풀이함' 이라는 사전적 의미를 가지고 있다. 사람의 힘으로 반복적인 작업을 한다는 건 그다지 적합하지 않다. 반복하면 할수록 심리적으로 지치고, 지루해지며 그리고 치명적인 실수가 나올 수도 있기 때문이다. 그렇게 때문에 반복적인 작업은 컴퓨터에게 적합하다고 할 수 있다.

컴퓨터는 반복적인 작없에 있어 심리적인 압박을 느끼지 못하고, 사람보다 훨씬 빠른 속도로 할 수 있다. 간단한 예시를 들어 출력을 해주는 printf를 이용하여 "Hello, Worㅣd!"를 10번 찍어야 한다고 가정 했을때 번거롭긴 하지만 그다지 어려운 일은 아니다.

하지만 10번이 아닌 100번 1000번 그 이상을 찍어야 한다고 하면 매우 힘들거나 불가능에 가까운 일이 된다. 매우 단순한 작업이지만 반복하는 횟수를 생각하면 매우 곤란한 상황이 될 수 있다.

그래서 이 때 사용하는 것이 반복문이다. printf("Hello, World!");를 10000번 출력하는 것은 일정한 규칙이 있고, 반복성이 짙은, 반복문을 사용하기에 적합한 예시이다.[1]

컴퓨터 프로그래밍에서 반복문(영어: iteration)은 제어문중 하나로, 프로그램 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다.

에츠허르 데이크스트라는 '구조화 이론'(structured theorem)에서 모든 프로그래밍 언어는 순차실행문 , 조건문 그리고 반복문의 3개 제어문 구문 유형을 필연적으로 가지고 있음을 언급한바있다.[2]

특성[편집]

for 루프[편집]

컴퓨터 프로그래밍에서 for 루프는 반복문의 일종으로, 특정한 부분의 코드가 반복적으로 수행될 수 있도록 한다. for 루프는 while 루프와 같은 다른 반복문과는 달리 일반적으로 해당 루프에 연계된 루프 변수가 존재하며, 그 변수의 비교 및 증감을 위해서 별도의 문법을 할애한 점이 구분된다.

for 루프의 이름은 영어 표현 “For …, do …”(…동안 …를 하라)에서 유래하였다. 포트란과 같은 언어에서는 for 대신 do 예약어를 사용하며 그 문법의 이름도 do 루프이지만, 이를 제외하고는 for 루프와 큰 차이가 없다.[3]

while 루프[편집]

대부분의 컴퓨터 프로그래밍 언어에서 while 루프는 반복문의 일종으로, 주어진 불린 자료형 조건을 기반으로 코드가 반복적으로 수행할 수 있게 도와준다. 이 while 루프는 if 문의 반복으로 생각할 수도 있다.

while은 코드와 조건의 블록을 이루고 있다. 조건이 true라면 블록 안의 코드는 실행한다. 조건이 false가 될 때까지 이 작업을 반복한다. 블록을 실행하기 전에 while 루프를 검사하므로 제어 구조는 사전 시험 루프(pre-test loop)로 불리기도 한다. 루프를 실행한 뒤에 조건을 시험하는 do while 루프와 비교된다.[4]

Foreach 루프[편집]

For each(또는 foreach)는 컬렉션 안의 항목들을 횡단하는 제어 흐름 문이다. Foreach는 표준 For 문 대신 사용되는 것이 일반적이다. 그러나 loop 구조체를 위한 다른 루프와 달리 foreach 루프[1]는 일반적으로 명시적인 카운터를 관리하지 않는다. 즉, "이것을 x번 하라"라고 하지 않고 "이 집합 안에서 모든 것에 대해 이것을 하라"라고 필수적으로 명시하게 된다. 잠재적인 순환 횟수 오류(off-by-one error)를 예방하고 코드를 더 단순하게 읽힐 수 있게 만들어준다. 객체 지향 언어에서는 횡단을 위해 비명시적인 경우에도 반복자가 종종 사용된다.[5]

do-while 루프[편집]

do-while 루프는 대부분의 컴퓨터 프로그래밍 언어에서 주어진 불린 자료형 조건을 기반으로 코드가 한 번 실행할 수 있게 하는 제어 흐름문이다. 대부분의 언어와 달리 포트란의 do 루프는 실제로는 for 루프와 같다.[6]

무한 루프[편집]

무한 루프(infinite loop)는 컴퓨터에서 프로그램이 끝없이 동작하는 것으로, 루프문에 종료 조건이 없거나, 종료 조건과 만날 수 없을 때 생긴다. 다중작업을 지원한 오래된 운영 체제는 한 프로그램의 무한루프에 전체 프로그램이 응답할 수 없게 만들었다.[7]

활용[편집]

for 예제[편집]

//문법
for(초기화식; 조건식; 증감식){
    실행문; 
}
//사용법
for(int i=0;i<10;i++){
   printf("%d\n",i);
}[8]

while 예제[편집]

//문법
while(조건식){
    실행문;
}
//사용법
int i=1;
while(i<10){
    printf("%d\n",i);
    i++;
}[9]

do-while 예제[편집]

// 문법
do{
    //실행내용(반복될 내용)
}while(조건);
// 사용법
int num;

do{

    printf("예제입니다.\n");

    scanf_s("%d", &num);

}while(num!= 0);[10]

무한 루프 예제[편집]

#include <stdio.h> 

int main()
{
    while (1)    // while에 1을 지정하면 무한 루프
    {
        printf("Hello, world!\n");
    }  

    return 0;
}
//실행결과
... (생략)
Hello, world!
Hello, world!
Hello, world!
Hello, world!
... (계속 반복)[11]

각주[편집]

  1. <반복문이란><<한 눈에 끝내는 C언어 기초>>
  2. <반복문><<위키백과>>
  3. <for 반복문><<위키백과>>
  4. <while 반복문><<위키백과>>
  5. <foreach 반복문><<위키백과>>
  6. <do-while 반복문><<위키백과>>
  7. <무한루프><<위키백과>>
  8. <for 예제><<코딩팩토리>>
  9. <while 예제><<코딩팩토리>>
  10. <do-while 예제><<prosto>>
  11. <무한루프 예제><<코딩도장>>

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 루프 (프로그래밍) 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.