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

2012.11.05 20:44

관리자 조회 수:5932

단순문
단순문(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 15417
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13960
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16496
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23267
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18921
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39245
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174696
150 [델파이7 이후 새로운 기능] 코딩 생산성을 높여주는 코드에디터 기능들 Humphery 2015.04.21 2687
149 XE8로 구현한 멀티플랫폼 클립보드 공유앱 런칭 file c2design 2015.04.19 1185
148 Thalmic Labs의 MYO Armband Delphi SDK Beta7입니다. 쭈니아빠 2015.04.18 1135
147 [따라하기] reFind 도구를 이용해 BDE 프로젝트를 FireDAC으로 마이그레이션 따라하기 [9] Humphery 2015.04.14 4144
146 reFind.exe: 마이그레이션 작업에서 수작업을 줄여주는 도구 Humphery 2015.04.09 3971
145 "모바일 앱" 개발 또는 유지관리, 데브기어와 해결하세요! file 관리자 2015.03.26 12732
144 [VCL] TaskDialog 컴포넌트 소개 Humphery 2015.02.25 1092
143 [Delphi week 2015] 윈도우 3.11에서 델파이1.0 사용하기 관리자 2015.02.13 1138
142 [VCL] 에디트/버튼의 다양한 속성 소개 Humphery 2015.02.13 1718
141 [XE7] 안드로이드 WiFi 상태조회와 설정하기 Humphery 2015.02.12 1875
140 [XE7] 안드로이드 블루투스 활성화 조회와 설정하기 [1] Humphery 2015.02.12 1772
139 [무료 온라인 세미나] Delphi Week 2015 file 관리자 2015.02.07 1014
138 20150204 VCL 개발자를 위한 Speed UP! RAD스튜디오 관리자 2015.02.05 1104
137 [VCL] TaskDialog 컴포넌트 소개 Humphery 2015.02.03 926
136 [VCL] 리본컨트롤 자습서 동영상 Humphery 2015.02.03 1765
135 바코드 스캐너 기능 구현하기(iOS, Android) [2] 험프리 2015.01.14 6593
134 [XE7] Castalia로 델파이 코딩 생산성을 높일 수 있습니다.(XE7사용자 무료제공) Humphery 2014.12.09 2600
133 [무료 온라인 강의] 마르코칸투의 "델파이 오브젝트 파스칼" 관리자 2014.11.28 1758
132 더 쉬운코드, 더 유연한 코드를 작성할 수 있는 현대식 문법 [1] Humphery 2014.11.06 4616
131 델파이 문법을 익힐 수 있는 문서모음 [2] Humphery 2014.11.03 2634