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 15412
공지 [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 174695
1203 [델파이 문법] 프로시저와 함수 #4 file 관리자 2012.08.02 6108
1202 [델파이 문법] 클래스와 객체 #14 file 관리자 2012.06.19 6095
1201 BLOB 컬럼에 (이미지 등의)데이터 읽고 쓰기 험프리 2016.08.01 6093
1200 [C++빌더 XE3 비디오 31] 기존 C++ VCL과 파이어몽키 앱에서 메트로폴리스 UI 사용하기 관리자 2013.01.08 6087
1199 델파이에서 사용하는 각 Stream(스트림) 정리 김원경 2017.01.04 6069
1198 Instagram Filter 효과와 같은 앱 소스(소스 포함) [2] Humphery 2014.04.09 6068
1197 XE5 안드로이드 SMS 전송 방법 [2] c2design 2013.09.23 6062
1196 InterBase ToGo 에디션 퀵사용자 가이드(한글) file 문효섭 2014.01.03 6050
1195 [델파이 문법] 클래스와 객체 #15 file 관리자 2012.06.20 6026
1194 FireMonkey Quick Start Guide now available on our DocWiki 관리자 2012.04.02 6016
1193 인터베이스(InterBase) 2020 버전을 사용해야 하는 5 가지 이유 file 김원경 2020.04.09 6015
1192 [C++빌더 XE3 비디오 31] Anchors 프로퍼티와 Layout 컴포넌트(TScaledLayout, TFlowLayout, TGridLayout) 활용 관리자 2013.01.03 5994
1191 David I의 31일 동영상(한글자막) - 픽셀 쉐이더 이미지 효과를 사용하는 앱(윈도우&맥)(델파이 동일 적용 가능) 관리자 2013.04.22 5989
1190 [웹세미나 비디오] Delphi XE3와 HTML5 Builder의 새로워진 기능 관리자 2012.10.09 5980
1189 David I의 31 XE3 퀵 비디오 - FM2 미디어 플레이어 컴포넌트 활용하기 관리자 2012.10.08 5948
1188 델파이 튜토리얼 워크샵 발표자료_3D 프로그래밍과 라이브바인딩 file 관리자 2012.07.05 5940
» [델파이 문법] 문법 요소 #9 file 관리자 2012.11.05 5932
1186 David I의 31 XE3 퀵 비디오 - HTML5 빌더로 클라이언트 모바일 앱 개발하기 관리자 2012.10.15 5901
1185 InterBase XE3 데이터시트 file 문효섭 2014.01.04 5882
1184 [C++빌더 XE3 비디오 31] 인터베이스 Express로 나만의 SQL 데이터베이스 C++ 파이어몽키 앱 만들기 관리자 2013.01.09 5865