봄수의 연구실

프로그래밍언어론 - 반복문 본문

Computer Science/프로그래밍 언어론

프로그래밍언어론 - 반복문

berom 2023. 5. 30. 20:57

프로그래밍언어론 - 반복문

반복문이란, 특정 부분을 반복 실행되게 하는 문장을 의미한다.

예시 : FORTRAN의 DO문

  • 변수가 초기 값을 갖고 한 번씩 반복할 때마다 증가 값만큼 증가되면서, 종료 값보다 작거나 같은 동안 문장들을 실행
  • 증가 값은 생략 가능, 생략하면 반복 할 때마다 변수 값은 1씩 증가

While 문

  • 식이 참인 동안 문장을 반복해서 실행

C/C++/Java의 while 문

while(Expression)
	문장;

EBNF

<while> -> while(<expression>) <statement>

Ada의 while 문

while(Expression){
	문장 1;
	문장 2;
	...
}
with Ada.Text_IO;
use Ada.Text_IO;

procedure Sum is
   package Int_IO is new Ada.Text_IO.Integer_IO (Integer);
   use Int_IO;
   
   Index, Result : Integer;
begin
   Index := 1;
   Result := 0;
   
   while Index <= 10 loop
      Result := Result + Index;
      Index := Index + 1;
   end loop;
   
   Put(Result);
end Sum;

Do 문

do
	문장;
while(Expression);
  • while로 나타내기
문장;
while (Expression);
	문장;
  • do 문에서는 반복 문장이 단일 문장일지라도 중괄호로 묶는 것이 바람직하다
do{
	문장;
}while(Expression)
  • 반복 내의 임의의 지점에서 종료하는 방법

For 문

for (식 1, 식 2, 식3)
	문장;
  • 식1 : 초기화
  • 식2 : 종료 조건을 판단하는 식
  • 식3 : ‘문장’ 실행 후에 평가, 반복 변수의 값을 변환할 때 사용

EBNF로 나타내면 아래와 같다

<for> → for ([<expression>];[<expression>];[<expression>]) <statement>

항상 참인 경우

for( ; ; )
	문장;

while 문으로 표현하는 방법

식1;
while(식2){
	문장;
	식3;
}

for 문의 사용

  • 반복 변수를 사용해서 임의의 횟수만큼 반복할 때 주로 사용
  • for 문에서의 변수 선언 (C, Java, C++)

Ada의 for

Ada의 for 문의 특징은 반복 변수가 for 구조 내에서만 사용되는 지역 변수라는 것이다!
또한, 반복 구조 내에서 값을 임의로 배정 할 수 없다

  • 변수 : 범위의 하한값~상한 값이 될 때까지 반복
  • 반복할 때마다 변수의 값은 1씩 증가
  • 범위 : 1…10과 같이 정수 또는 열거 타입의 부분 범위
  • reverse를 사용하면 범위의 값이 역순으로 변수에 배정

Goto 문

프로그램의 실행 순서를 특정 위치로 바꾸는 문장

FORTRAN 같은 언어에서 중요한 역할을 한다

goto 문 사용시 주의 할 점

  • goto 문을 무분별하게 사용하면, 프로그램을 판독하기가 힘들어진다
  • 프로그램의 신뢰성이 상당히 떨어지므로 특별한 경우에만 사용하라

부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>