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

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

위키원
이동: 둘러보기, 검색
 
(사용자 2명의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''루프'''(loop)란 반복문(反復文)을 말한다. '''for''' 또는 '''while''' 등을 사용한다. 루프에서 벗어나기 위해서 break 또는 return 명령어를 사용한다. 영원히
+
'''루프'''(loop)란 프로그래밍에서 '''반복문'''(反復文)을 말한다. '''for''' 또는 '''while''' 등을 사용한다. 루프에서 벗어나기 위해서 [[브레이크 (프로그래밍)|브레이크]](break) 또는 [[리턴]](return) 명령어를 사용한다. 영원히 벗어나지 못하고 무한히 반복되는 반복문을 [[무한루프]]라고 한다. 프로그램 개발 시 무한루프에 빠지지 않도록 주의해야 한다.
벗어나지 못하고 무한히 반복되는 반복문을 무한루프라고 한다. 프로그램 개발 시 무한 루프에 빠지지 않도록 주의해야 한다.
 
  
 
== 개요 ==
 
== 개요 ==
 +
[[반복]]이라는 것은 간단하게 말해 '같은 일을 되풀이함' 이라는 사전적 의미를 가지고 있다. 사람의 힘으로 반복적인 작업을 한다는 건 그다지 적합하지 않다. 반복하면 할수록 심리적으로 지치고, 지루해지며 그리고 치명적인 실수가 나올 수도 있기 때문이다. 그렇게 때문에 반복적인 작업은 컴퓨터에게 적합하다고 할 수 있다.
 +
 +
컴퓨터는 반복적인 작없에 있어 심리적인 압박을 느끼지 못하고, 사람보다 훨씬 빠른 속도로 할 수 있다. 간단한 예시를 들어 출력을 해주는 printf를 이용하여 "Hello, Worㅣd!"를 10번 찍어야 한다고 가정 했을때 번거롭긴 하지만 그다지 어려운 일은 아니다.
 +
 +
하지만 10번이 아닌 100번 1000번 그 이상을 찍어야 한다고 하면 매우 힘들거나 불가능에 가까운 일이 된다. 매우 단순한 작업이지만 반복하는 횟수를 생각하면 매우 곤란한 상황이 될 수 있다.
 +
 +
그래서 이 때 사용하는 것이 반복문이다. printf("Hello, World!");를 10000번 출력하는 것은 일정한 규칙이 있고, 반복성이 짙은, 반복문을 사용하기에 적합한 예시이다.<ref name="반복문이란"><[https://edu.goorm.io/learn/lecture/201/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-c%EC%96%B8%EC%96%B4-%EA%B8%B0%EC%B4%88/lesson/5977/%EB%B0%98%EB%B3%B5%EB%AC%B8%EC%9D%B4%EB%9E%80 반복문이란]><<한 눈에 끝내는 C언어 기초>></ref>
 +
 
컴퓨터 프로그래밍에서 반복문(영어: iteration)은 제어문중 하나로, 프로그램 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다.
 
컴퓨터 프로그래밍에서 반복문(영어: iteration)은 제어문중 하나로, 프로그램 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다.
  
25번째 줄: 32번째 줄:
  
 
=== 무한 루프 ===
 
=== 무한 루프 ===
 
+
무한 루프(infinite loop)는 컴퓨터에서 프로그램이 끝없이 동작하는 것으로, 루프문에 종료 조건이 없거나, 종료 조건과 만날 수 없을 때 생긴다. 다중작업을 지원한 오래된 운영 체제는 한 프로그램의 무한루프에 전체 프로그램이 응답할 수 없게 만들었다.<ref name="무한루프 정의"><[https://ko.wikipedia.org/wiki/%EB%AC%B4%ED%95%9C_%EB%A3%A8%ED%94%84 무한루프]><<위키백과>></ref>
 
== 활용 ==
 
== 활용 ==
 
=== for 예제 ===
 
=== for 예제 ===
66번째 줄: 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>
 
 
=== Foreach 예제 ===
 
  
 
=== 무한 루프 예제 ===
 
=== 무한 루프 예제 ===
 +
#include <stdio.h>
 +
 +
int main()
 +
{
 +
    while (1)    // while에 1을 지정하면 무한 루프
 +
    {
 +
        printf("Hello, world!\n");
 +
    } 
 +
 +
    return 0;
 +
}
  
 +
//실행결과
 +
... (생략)
 +
Hello, world!
 +
Hello, world!
 +
Hello, world!
 +
Hello, world!
 +
... (계속 반복)<ref name="무한루프 예제"><[https://dojang.io/mod/page/view.php?id=225 무한루프 예제]><<코딩도장>></ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
 +
*<[https://edu.goorm.io/learn/lecture/201/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-c%EC%96%B8%EC%96%B4-%EA%B8%B0%EC%B4%88/lesson/5977/%EB%B0%98%EB%B3%B5%EB%AC%B8%EC%9D%B4%EB%9E%80 반복문이란]><<한 눈에 끝내는 C언어 기초>>
 +
*<[https://ko.wikipedia.org/wiki/%EB%B0%98%EB%B3%B5%EB%AC%B8 반복문]><<위키백과>>
 +
*<[https://ko.wikipedia.org/wiki/For_%EB%A3%A8%ED%94%84 for 루프]><<위키백과>>
 +
*<[https://ko.wikipedia.org/wiki/While_%EB%A3%A8%ED%94%84 while 루프]><<위키백과>>
 +
*<[https://ko.wikipedia.org/wiki/Foreach_%EB%A3%A8%ED%94%84 foreach 루프]><<위키백과>>
 +
*<[https://ko.wikipedia.org/wiki/Do-while_%EB%A3%A8%ED%94%84 do-while 루프]><<위키백과>>
 +
*<[https://ko.wikipedia.org/wiki/%EB%AC%B4%ED%95%9C_%EB%A3%A8%ED%94%84 무한루프]><<위키백과>>
 +
*<[https://coding-factory.tistory.com/382 for 예제]><<코딩팩토리>>, 2019-07-24
 +
*<[https://coding-factory.tistory.com/381?category=767224 while 예제]><<코딩팩토리>>, 2019-07-23
 +
*<[https://prosto.tistory.com/83 do while문]><<prosto>>, 2016-09-17
 +
*<[https://dojang.io/mod/page/view.php?id=225 무한루프]><<코딩도장>>
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 
* [[반복문]]
 
* [[반복문]]
 +
* [[무한루프]]
 +
* [[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 이 루프 (프로그래밍) 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.