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

2012.10.16 01:21

관리자 조회 수:7157

레이블

레이블은 표준 델파이 언어 식별자이지만 예외적으로 레입은 숫자로 시작할 수 있습니다. 숫
자 레이블은 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 15441
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13962
공지 [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 39257
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174713
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 1635
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 4518
744 [REST API] REST API 이해하기 험프리 2017.05.23 15260