Delphi [델파이 문법] 문법 요소 #9

2012.11.05 20:44

관리자 조회 수:5933

단순문
단순문(simple statement)은 다른 문장을 포함하지 않습니다. 단순문에는 대입문, 프로시
저와 함수 호출, goto 문이 포함됩니다.


■ 대입문
대입문(assignment statement)의 형식은 다음과 같습니다.

1.png

여기서 variable은 어떤 변수 참조 형태이든 가능한데, 여기에는 변수, 변수 타입 캐스트, 역
참조(dereference) 포인터, 구조(structured) 변수의 컴포넌트 등이 있습니다. expression
은 대입이 가능한 모든 표현식이 될 수 있습니다. (함수 블럭 안에서 해당 함수 자체의 이름
을 variable로 쓸 수도 있습니다. 5장“프로시저 및 함수”를 참조하십시오.) := 기호를 대입
연산자라고 부르기도 합니다.

대입문은 variable의 현재 값을expression의 값으로 바꿉니다. 예를 들면,

2.png

이 문장은 변수 I에 값 3을 대입합니다. 대입 연산자의 왼쪽에 있는 변수 참조가 오른쪽의 표
현식에 사용될 수도 있습니다. 예를 들면,

3.png

이 문장은 I의 값을 증가시킵니다. 다른 대입문의 예는 다음과 같습니다.

4.png


■ 프로시저 및 함수 호출
프로시저 호출은 프로시저 이름(한정자가 지정될 수도 있습니다)과 (필요한 경우) 파라미터
리스트로 구성됩니다. 다음과 같은 예들이 있습니다.

5.png

확장 문법이 활성화된 상태에서는({$X+}) 함수 호출은 프로시저 호출과 마찬가지로 문장
으로서 사용될 수 있습니다.

6.png

함수 호출을 이런 방식으로 사용할 경우 리턴 값은 버려집니다.
프로시저와 함수에 대한 자세한 내용은 5장“프로시저 및 함수”를 참조하십시오.


■ Goto 문

goto 문의 형식은 다음과 같습니다.

7.png

이 문장은 프로그램 실행을 지정한 레이블이 표시된 문장으로 이동합니다. 문장에 레이블을
표시하려면 먼저 레이블을 선언해야 합니다. 그런 다음, 레이블로 표시하려는 문장 앞에 다
음과 같이 레이블과 콜론을 써넣습니다.

8.png

레이블은 다음과 같이 선언합니다.

9.png

다음과 같이 여러 개의 레이블을 한 번에 선언할 수도 있습니다.

10.png

레이블은 유효한 식별자 또는 0과 9999 사이의 숫자를 사용할 수 있습니다.
레이블 선언, 레이블이 표시된 문장, 그리고 goto 문은 같은 블럭에 있어야 합니다.(3장의
“블럭과 유효 범위”절을 참조) 따라서 프로시저나 함수의 안이나 밖으로 이동하는 것은 불
가능합니다. 한 블럭에서 둘 이상의 문장을 같은 레이블로 표시하지 마십시오.
예를 들면, 다음과 같습니다.

11.png

이 문장은 Beep 프로시저를 반복적으로 호출하는 무한 루프를 만듭니다.
또, try-finally나 try-except 문의 안이나 바깥으로 이동하는 것은 불가능합니다.
일반적으로 구조적 프로그램에서는 goto 문을 사용하지 않는 것이 좋습니다. 그러나 다음 예
제처럼 중첩된 루프로부터 빠져나가는 방법으로 사용되는 경우도 있습니다.

12.png

중첩 루프를 빠져나가기 위해 goto 문을 사용했다는 점을 눈여겨보십시오. 루프나 구조문의
안으로 이동해서는 안됩니다. 예기치 못한 결과를 일으킬 수 있기 때문입니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15438
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39255
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174699
763 안드로이드에서 Firebase SDK 용 Google 로그인 사용하기 험프리 2017.08.04 619
762 첨부파일을 포함한 이메일 전송하기(iOS, 안드로이드, 윈도우) file 험프리 2017.08.04 665
761 이 달의 기술자료 - 2017년 08월 험프리 2017.07.28 518
760 세일즈포스(Salesforce) 데이터, RAD스튜디오 데이터 익스플로러로 연동하기 file 관리자 2017.07.26 809
759 Tools API를 사용해 IDE를 확장할 수 있습니다. file 험프리 2017.07.20 498
758 파이어몽키(FireMonkey) vs. VCL 관리자 2017.07.18 2843
757 엔터프라이즈 커넥터로 '트위터' 연동하기 file 관리자 2017.07.17 922
756 엔터프라이즈 커넥터 - 엠바카데로의 새로운 솔루션 [1] file 관리자 2017.07.12 1975
755 겟잇 패키지 매니저를 사용하면 협업을 위한 프로젝트 공유와 전환이 간편해집니다. 험프리 2017.07.07 471
754 이 달의 기술자료 - 2017년 07월 험프리 2017.07.03 490
753 [업데이트][핫픽스][10.2 도쿄] FireMonkey의 Android 호환성 패치 험프리 2017.07.03 667
752 [발표자료] 20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio [2] 관리자 2017.06.26 380
751 [고객 사례- 쇼핑, 모바일앱, 델파이] 매일 최저가 상품을 보여주는 'Daily Offer' 관리자 2017.06.21 662
750 RAD서버로 개발은 확장하면서도 비용을 절감하는 방법 (RAD서버 라이선스 유형별 정리) file 관리자 2017.06.20 1633
749 [REST API][실습] 데이터셋 기반 REST API 개발하기 험프리 2017.06.13 2177
748 이 달의 기술자료 - 2017년 06월 file 험프리 2017.05.30 525
747 [발표자료] REST API 웹서비스 연동 관리자 2017.05.29 1474
746 [REST API][실습] REST API 클라이언트 개발하기(REST Client 이용) [2] 험프리 2017.05.23 7101
745 [REST API][실습] REST API 서버 개발하기(엔드포인트 구현, RAD 서버 이용) [5] 험프리 2017.05.23 4516
744 [REST API] REST API 이해하기 험프리 2017.05.23 15259