"루프 (프로그래밍)"의 두 판 사이의 차이
잔글 |
|||
3번째 줄: | 3번째 줄: | ||
== 개요 == | == 개요 == | ||
+ | 컴퓨터 프로그래밍에서 반복문(영어: iteration)은 제어문중 하나로, 프로그램 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다. | ||
+ | |||
+ | 에츠허르 데이크스트라는 '구조화 이론'(structured theorem)에서 모든 프로그래밍 언어는 순차실행문 , 조건문 그리고 반복문의 3개 제어문 구문 유형을 필연적으로 가지고 있음을 언급한바있다.<ref name="반복문"><[https://ko.wikipedia.org/wiki/%EB%B0%98%EB%B3%B5%EB%AC%B8 반복문]><<위키백과>></ref> | ||
== 특성 == | == 특성 == | ||
+ | === for 루프 === | ||
+ | 컴퓨터 프로그래밍에서 for 루프는 반복문의 일종으로, 특정한 부분의 코드가 반복적으로 수행될 수 있도록 한다. for 루프는 while 루프와 같은 다른 반복문과는 달리 일반적으로 해당 루프에 연계된 루프 변수가 존재하며, 그 변수의 비교 및 증감을 위해서 별도의 문법을 할애한 점이 구분된다. | ||
+ | |||
+ | for 루프의 이름은 영어 표현 “For …, do …”(…동안 …를 하라)에서 유래하였다. 포트란과 같은 언어에서는 for 대신 do 예약어를 사용하며 그 문법의 이름도 do 루프이지만, 이를 제외하고는 for 루프와 큰 차이가 없다.<ref name="for정의"><[https://ko.wikipedia.org/wiki/For_%EB%A3%A8%ED%94%84 for 반복문]><<위키백과>></ref> | ||
+ | |||
+ | === while 루프 === | ||
+ | 대부분의 컴퓨터 프로그래밍 언어에서 while 루프는 반복문의 일종으로, 주어진 불린 자료형 조건을 기반으로 코드가 반복적으로 수행할 수 있게 도와준다. 이 while 루프는 if 문의 반복으로 생각할 수도 있다. | ||
+ | |||
+ | while은 코드와 조건의 블록을 이루고 있다. 조건이 true라면 블록 안의 코드는 실행한다. 조건이 false가 될 때까지 이 작업을 반복한다. 블록을 실행하기 전에 while 루프를 검사하므로 제어 구조는 사전 시험 루프(pre-test loop)로 불리기도 한다. 루프를 실행한 뒤에 조건을 시험하는 do while 루프와 비교된다.<ref name="while정의"><[https://ko.wikipedia.org/wiki/While_%EB%A3%A8%ED%94%84 while 반복문]><<위키백과>></ref> | ||
+ | |||
+ | === Foreach 루프 === | ||
+ | For each(또는 foreach)는 컬렉션 안의 항목들을 횡단하는 제어 흐름 문이다. Foreach는 표준 For 문 대신 사용되는 것이 일반적이다. 그러나 loop 구조체를 위한 다른 루프와 달리 foreach 루프[1]는 일반적으로 명시적인 카운터를 관리하지 않는다. 즉, "이것을 x번 하라"라고 하지 않고 "이 집합 안에서 모든 것에 대해 이것을 하라"라고 필수적으로 명시하게 된다. 잠재적인 순환 횟수 오류(off-by-one error)를 예방하고 코드를 더 단순하게 읽힐 수 있게 만들어준다. 객체 지향 언어에서는 횡단을 위해 비명시적인 경우에도 반복자가 종종 사용된다.<ref name="foreach정의"><[https://ko.wikipedia.org/wiki/Foreach_%EB%A3%A8%ED%94%84 foreach 반복문]><<위키백과>></ref> | ||
+ | |||
+ | === do-while 루프 === | ||
+ | do-while 루프는 대부분의 컴퓨터 프로그래밍 언어에서 주어진 불린 자료형 조건을 기반으로 코드가 한 번 실행할 수 있게 하는 제어 흐름문이다. 대부분의 언어와 달리 포트란의 do 루프는 실제로는 for 루프와 같다.<ref name="do-while정의"><[https://ko.wikipedia.org/wiki/Do-while_%EB%A3%A8%ED%94%84 do-while 반복문]><<위키백과>></ref> | ||
+ | |||
+ | === 무한 루프 === | ||
== 활용 == | == 활용 == | ||
+ | === for 예제 === | ||
+ | //문법 | ||
+ | for(초기화식; 조건식; 증감식){ | ||
+ | 실행문; | ||
+ | } | ||
+ | |||
+ | //사용법 | ||
+ | for(int i=0;i<10;i++){ | ||
+ | printf("%d\n",i); | ||
+ | }<ref name="for예제"><[https://coding-factory.tistory.com/382 for 예제]><<코딩팩토리>></ref> | ||
+ | |||
+ | === while 예제 === | ||
+ | //문법 | ||
+ | while(조건식){ | ||
+ | 실행문; | ||
+ | } | ||
+ | |||
+ | //사용법 | ||
+ | int i=1; | ||
+ | while(i<10){ | ||
+ | printf("%d\n",i); | ||
+ | i++; | ||
+ | }<ref name="while예제"><[https://coding-factory.tistory.com/381?category=767224 while 예제]><<코딩팩토리>></ref> | ||
+ | |||
+ | === do-while 예제 === | ||
+ | // 문법 | ||
+ | do{ | ||
+ | //실행내용(반복될 내용) | ||
+ | }while(조건); | ||
+ | |||
+ | // 사용법 | ||
+ | int num; | ||
+ | |||
+ | do{ | ||
+ | |||
+ | printf("예제입니다.\n"); | ||
+ | |||
+ | scanf_s("%d", &num); | ||
+ | |||
+ | }while(num!= 0);<ref name="do-while예제"><[https://prosto.tistory.com/83 do-while 예제]><<코딩팩토리>></ref> | ||
+ | |||
+ | === Foreach 예제 === | ||
+ | |||
+ | === 무한 루프 예제 === | ||
+ | |||
{{각주}} | {{각주}} |
2020년 8월 14일 (금) 09:41 판
루프(loop)란 반복문(反復文)을 말한다. for 또는 while 등을 사용한다. 루프에서 벗어나기 위해서 break 또는 return 명령어를 사용한다. 영원히 벗어나지 못하고 무한히 반복되는 반복문을 무한루프라고 한다. 프로그램 개발 시 무한 루프에 빠지지 않도록 주의해야 한다.
목차
개요
컴퓨터 프로그래밍에서 반복문(영어: iteration)은 제어문중 하나로, 프로그램 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다.
에츠허르 데이크스트라는 '구조화 이론'(structured theorem)에서 모든 프로그래밍 언어는 순차실행문 , 조건문 그리고 반복문의 3개 제어문 구문 유형을 필연적으로 가지고 있음을 언급한바있다.[1]
특성
for 루프
컴퓨터 프로그래밍에서 for 루프는 반복문의 일종으로, 특정한 부분의 코드가 반복적으로 수행될 수 있도록 한다. for 루프는 while 루프와 같은 다른 반복문과는 달리 일반적으로 해당 루프에 연계된 루프 변수가 존재하며, 그 변수의 비교 및 증감을 위해서 별도의 문법을 할애한 점이 구분된다.
for 루프의 이름은 영어 표현 “For …, do …”(…동안 …를 하라)에서 유래하였다. 포트란과 같은 언어에서는 for 대신 do 예약어를 사용하며 그 문법의 이름도 do 루프이지만, 이를 제외하고는 for 루프와 큰 차이가 없다.[2]
while 루프
대부분의 컴퓨터 프로그래밍 언어에서 while 루프는 반복문의 일종으로, 주어진 불린 자료형 조건을 기반으로 코드가 반복적으로 수행할 수 있게 도와준다. 이 while 루프는 if 문의 반복으로 생각할 수도 있다.
while은 코드와 조건의 블록을 이루고 있다. 조건이 true라면 블록 안의 코드는 실행한다. 조건이 false가 될 때까지 이 작업을 반복한다. 블록을 실행하기 전에 while 루프를 검사하므로 제어 구조는 사전 시험 루프(pre-test loop)로 불리기도 한다. 루프를 실행한 뒤에 조건을 시험하는 do while 루프와 비교된다.[3]
Foreach 루프
For each(또는 foreach)는 컬렉션 안의 항목들을 횡단하는 제어 흐름 문이다. Foreach는 표준 For 문 대신 사용되는 것이 일반적이다. 그러나 loop 구조체를 위한 다른 루프와 달리 foreach 루프[1]는 일반적으로 명시적인 카운터를 관리하지 않는다. 즉, "이것을 x번 하라"라고 하지 않고 "이 집합 안에서 모든 것에 대해 이것을 하라"라고 필수적으로 명시하게 된다. 잠재적인 순환 횟수 오류(off-by-one error)를 예방하고 코드를 더 단순하게 읽힐 수 있게 만들어준다. 객체 지향 언어에서는 횡단을 위해 비명시적인 경우에도 반복자가 종종 사용된다.[4]
do-while 루프
do-while 루프는 대부분의 컴퓨터 프로그래밍 언어에서 주어진 불린 자료형 조건을 기반으로 코드가 한 번 실행할 수 있게 하는 제어 흐름문이다. 대부분의 언어와 달리 포트란의 do 루프는 실제로는 for 루프와 같다.[5]
무한 루프
활용
for 예제
//문법 for(초기화식; 조건식; 증감식){ 실행문; }
//사용법 for(int i=0;i<10;i++){ printf("%d\n",i); }[6]
while 예제
//문법 while(조건식){ 실행문; }
//사용법 int i=1; while(i<10){ printf("%d\n",i); i++; }[7]
do-while 예제
// 문법 do{ //실행내용(반복될 내용) }while(조건);
// 사용법 int num; do{ printf("예제입니다.\n"); scanf_s("%d", &num); }while(num!= 0);[8]
Foreach 예제
무한 루프 예제
각주
참고자료
같이 보기