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

2012.10.16 01:21

관리자 조회 수:7260

레이블

레이블은 표준 델파이 언어 식별자이지만 예외적으로 레입은 숫자로 시작할 수 있습니다. 숫
자 레이블은 10자까지만 가질 수 있으므로 0에서 9999999999까지의 숫자가 됩니다.
레이블은 goto 문에서 사용됩니다. goto 문과 레이블에 대한 자세한 내용은 3장의“goto 문”
을 참조하십시오.


문자열

문자열은 문자열 리터럴 또는 문자열 상수라고도 불리며, 인용 문자열, 제어 문자열, 또는 인
용 문자열과 제어 문자열의 조합으로 구성됩니다. 구분자는 인용 문자열 내에서만 사용할 수
있습니다.

인용 문자열은 확장된 ASCII 문자셋에서 최대 255개의 문자들의 연속으로, 한 줄로 쓰며
작은 따옴표(')로 묶입니다. 작은 따옴표들('') 사이에 아무것도 없는 인용 문자열은 Null
문자열입니다. 인용 문자열 내에서 연속적인 두 개의 작은 따옴표('')는 하나의 작은 따옴표
(')를 의미합니다. 예를 들면 다음과 같습니다.

1.png

제어 문자열은 하나 이상의 연속된 제어 문자들입니다. 각각의 제어 문자는 #기호에 이어 0
에서 255까지의 부호 없는 정수 상수(10진수 혹은 16진수)로 구성되고, 해당 ASCII 문자를
나타냅니다. 제어 문자열의 예제는 다음과 같습니다.

2.png

이 문장은 다음 인용 문자열과 동일합니다.

3.png

제어 문자열과 인용 문자열을 조합하면 더 큰 문자열을 만들 수 있습니다. 예를 들어 다음 문
자열은,

4.png

‘Line 1’과‘Line 2’사이에 캐리지 리턴과 라인 피드가 삽입됩니다. 그러나 한 쌍의 연속적
인 작은 따옴표(‘)는 단일 문자로 해석되기 때문에 이러한 방법으로 두 개의 인용 문자열을
연결할 수는 없습니다. 인용 문자열을 연결하려면 3장의“문자열 연산자”에서 설명된 + 연
산자를 사용하거나, 하나의 인용 문자열로 만드십시오.

문자열의 길이는 문자열에 있는 문자의 갯수입니다. 길이에 상관 없이 문자열은 모든 문자열
타입과 PChar 타입과 호환됩니다. 길이가 1인 문자열은 모든 문자 타입과 호환되고, 확장
문법이 활성화(컴파일러 지시자 {$X+})되면 0보다 큰 n 길이의 문자열은 첨자가 0부터 시
작하는 n 문자의 배열 및 압축 배열과 호환됩니다. 문자열 타입에 대한 자세한 내용은 4장
“데이터 타입, 변수 및 상수”를 참조하십시오.



주석문과 컴파일러 지시어

주석문(comment)은 컴파일러에서 무시됩니다. 인접한 토큰들 사이의 구분자로서 혹은 컴
파일러 지시어로서의 기능을 하는 경우는 예외입니다.
주석문을 만드는 방법은 다음과 같이 몇가지가 있습니다.

5.png

동일한 주석문 기호를 중복해서 주석문을 만들 수는 없습니다. { { } }는 안되지만 (* { } *)
는 됩니다. 이것은 주석문을 포함한 코드 영역을 주석 처리하는 데에 유용합니다.
열린 { 또는 (* 바로 뒤에 달러 기호($)가 있는 주석문은 컴파일러 지시어(compiler
directive)입니다. 예를 들면 다음과 같습니다.

6.png

이 문법은 컴파일러가 경고 메시지를 내지 않도록 지정합니다


표현식

표현식(expression)은 값을 리턴 하는 코드 구조입니다. 
오른쪽의 표는 델파이 표현식의 예들을 보여줍니다.
가장 간단한 표현식은 변수와 상수 자체입니다. 연산자, 함수 호
출, 집합 생성자, 인덱스 및 타입 캐스트를 사용하면 간단한 표현식
으로부터 복잡한 표현식을 만들 수 있습니다.

7.png

연산자

연산자(operator)는 델파이 언어에 기본적으로 내장된 함수처럼 동작합니다. 예를 들어, 표현
식 (X + Y)는 변수 X와 Y(피연산자라고 부름)와 + 연산자를 사용하여 만들어집니다. 즉, X
와 Y가 정수나 실수를 나타내는 경우 (X + Y)는 이 둘의 합을 돌려줍니다. 연산자에는 @,
not, ^, *, /, div, mod, and, shl, shr, s, +, -, or, xor, =, >, <, <>, <=, =, in, is가 있습니다.
연산자 @, not 및 ^는 피연산자가 하나인 단항 연산자(unary operator)입니다.다른 모든
연산자들은 피연산자가 두 개인 이항 연산자(binary operator)인데, +와 ?는 단항 연산자
와 이항 연산자 모두로 사용할 수 있습니다. 피연산자 뒤에 오는 ^(예를 들어 P^)를 제외한
모든 단항 연산자는 -B 같이 피연산자의 앞에 옵니다. 이항 연산자는 피연산자들 사이에 위
치합니다(예를 들어 A = 7).

일부 연산자는 전달된 데이터의 타입에 따라 다르게 동작합니다. 예를 들어, not은 정수 피
연산자에 대해서는 비트(bitwise) 부정 연산을 수행하고, 부울 피연산자에 대해서는 논리 부
정 연산을 수행합니다. 이런 연산자들은 아래와 같이 다양한 범주에서 나타납니다.
^, is 및 in을 제외한 모든 연산자는 Variant 타입의 피연산자를 사용할 수 있습니다. 자세한

내용은 4장의“ Variant 타입”을 참조하십시오.

다음에 이어지는 절들을 살펴보려면 델파이 데이터 타입에 대해 약간 익숙할 필요가 있습니
다. 데이터 타입에 대한 내용은 4장“데이터 타입, 변수 및 상수”를 참조하십시오.
복잡한 표현식의 연산자 우선 순위에 대한 내용은 4- 2 절의“연산자 우선 순위”를 참조하십
시오.


산술 연산자

산술 연산자는 실수 또는 정수를 다루며, 여기에는 +, -, *, /, div, mod가 있습니다.

8.png


다음 규칙은 산술 연산자에 대해 적용됩니다.


 - x/y의 값은 x와 y의 타입에 관계 없이 Extended 타입입니다. 다른 산술 연산자에서는 피연산

자 중 하나가 실수이면 결과는 Extended 타입입니다. 피연산자 중 하나가 Int64 타입이면, 결

과는 Int64 타입입니다. 그외에는 정수 타입입니다. 피연산자의 타입이 정수 타입의 부분 범위

인 경우 정수 타입처럼 처리됩니다.


 - x div y 값은 x/y를 가장 가까운 정수로 내림한 값, 즉 몫입니다.


 - mod 연산자는 피연산자 나눗셈의 나머지를 리턴합니다. 다시 말하면 다음과 같습니다.

x mod y = x - (x div y) * y

 - x/y, x div y 또는 x mod y 같은 표현식에서 y가 0이면 런타임 에러가 발생합니다.



부울 연산자


부울 연산자(boolean operator)인 not, and, or, xor는 부울 타입의 피연산자를 받고 부울

타입의 값을 돌려줍니다.

9.png


이러한 연산들은 부울 로직의 표준 규칙에 따릅니다. 예를 들어, x와 y 모두가 True인 경우

에만 x and y 표현식이 True입니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 22591
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 21024
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 23082
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28881
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 30050
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25397
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46348
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 182322
163 RAD Studio XE3, 델파이XE3, C++빌더XE3 용 핫픽스(Hotfix)4가 나왔습니다. 관리자 2012.10.30 5728
162 [델파이 문법] 문법 요소 #7 file 관리자 2012.10.29 5856
161 [델파이 문법] 문법 요소 #6 file 관리자 2012.10.25 5395
160 [웹세미나] 파이어몽키용 TMS Grid와 비주얼 라이브바인딩을 활용한 멀티-티어 애플리케이션 개발 관리자 2012.10.23 5030
159 델파이/C++빌더 XE3 수정된 버그 리스트가 올라왔습니다. 관리자 2012.10.23 5778
158 [델파이 문법] 문법 요소 #5 file 관리자 2012.10.22 5682
157 [델파이 문법] 문법 요소 #4 file 관리자 2012.10.19 6903
156 David I의 31 XE3 퀵 비디오 - HTML5 빌더의 Canvas, Storage, Audio/Video 지원 관리자 2012.10.18 5335
» [델파이 문법] 문법 요소 #3 file 관리자 2012.10.16 7260
154 David I의 31 XE3 퀵 비디오 - HTML5 빌더로 클라이언트 모바일 앱 개발하기 관리자 2012.10.15 5930
153 David I의 31 XE3 퀵 비디오 - FM2 Ancors 프로퍼티, FlowLayout과 GridLayout 관리자 2012.10.12 5497
152 [웹세미나 비디오] Delphi XE3와 HTML5 Builder의 새로워진 기능 관리자 2012.10.09 5995
151 RAD Studio XE3와 SQLite 관리자 2012.10.09 6354
150 David I의 31 XE3 퀵 비디오 - FM2로 오디오 및 비디오 캡쳐 기능 만들기 관리자 2012.10.09 5432
149 David I의 31 XE3 퀵 비디오 - FM2 미디어 플레이어 컴포넌트 활용하기 관리자 2012.10.08 5965
148 David I의 31 XE3 퀵 비디오 - 윈도우8 스타일 사용하기 관리자 2012.10.08 6183
147 XE3 - Hotfix가 올라왔습니다. 관리자 2012.10.05 4787
146 파이어몽키용 TMS 그리드의 간략한 소개 백서 관리자 2012.09.26 6894
145 RAD Studio 모바일 로드맵 공개 관리자 2012.09.21 4862
144 [델파이 문법] 문법 요소 #2 file 관리자 2012.09.20 6602