연습 - 리터럴 값 출력
이 연습에서는 다른 형식의 데이터가 포함된 메시지를 출력하고, C#에서 데이터 형식이 중요한 이유를 알아봅니다.
리터럴 값이란?
리터럴 값은 변경되지 않는 상수 값입니다. 이전에는 출력 콘솔에 리터럴 문자열을 표시했습니다. 즉, H
, e
, l
, l
, o
등의 영숫자 문자열을 문자 그대로 출력 콘솔에 표시하려고 했습니다.
계산이 아닌 프레젠테이션에 사용할 영숫자 단어, 문구 또는 데이터가 있을 때 항상 문자열 데이터 형식을 사용합니다. 출력할 수 있는 다른 리터럴 데이터의 종류는 무엇일까요?
연습 - 다른 리터럴 데이터 형식 출력
C#에는 여러 가지 데이터 형식이 있습니다. 그러나 시작 단계에서는 대부분의 시나리오에 적용되는 5개 내지 6개 데이터 형식만 알고 있으면 됩니다. 데이터 형식의 리터럴 인스턴스를 출력에 표시해 봅시다.
참고
코드 창에서 작업을 시작하면 키워드, 연산자, 데이터 형식 등을 나타내기 위해 특정 구문이 다른 색으로 표시되는 것을 확인할 수 있습니다. 지금부터 색에 주의를 기울이세요. 문자를 입력할 때 구문 오류를 쉽게 확인할 수 있으며, 코드를 보다 효과적으로 파악할 수도 있습니다.
문자 리터럴 사용
단일 영숫자 문자만 화면에 출력하려는 경우, 해당 영숫자 문자를 작은따옴표로 묶어 char 리터럴을 만들 수 있습니다. char
용어는 character의 약식 표현입니다. C#에서 이 데이터 형식의 이름은 공식적으로 “char”이지만 “character”라고 할 때가 많습니다.
코드 편집기에서 다음 코드 줄을 추가합니다.
Console.WriteLine('b');
입력한 코드를 관찰합니다.
문자
b
는 작은따옴표'b'
로 묶입니다. 작은따옴표는 문자 리터럴을 만듭니다. 큰따옴표를 사용하면string
데이터 형식을 만듭니다.녹색 실행 단추를 눌러 코드를 실행합니다. 출력 창에 다음 결과가 표시됩니다.
b
다음 코드를 입력할 경우
Console.WriteLine('Hello World!');
그러면 다음 오류가 발생합니다.
(1,19): error CS1012: Too many characters in character literal
Hello World!
를 둘러싼 작은따옴표가 보입니다. 작은따옴표를 사용하는 경우 C# 컴파일러에는 단일 문자가 예상됩니다. 그러나 이 경우 문자 리터럴 구문이 사용되었지만 대신 12자가 제공되었습니다.
string
데이터 형식과 마찬가지로, 계산이 아닌 프레젠테이션에 사용할 단일 영숫자 문자가 있을 때는 항상 char
을 사용합니다.
정수 리터럴 사용
출력 콘솔에 숫자 정수(분수 아님) 값을 표시하려면 int 리터럴을 사용할 수 있습니다. int
용어는 수학에서 사용되는 integer의 약식 표현입니다. C#에서 이 데이터 형식의 이름은 공식적으로 “int”이지만 “integer”라고 할 때가 많습니다. string
또는 char
와 달리, int
리터럴에는 다른 연산자가 필요하지 않습니다.
코드 편집기에서 다음 코드 줄을 추가합니다.
Console.WriteLine(123);
녹색 실행 단추를 눌러 코드를 실행합니다. 출력 콘솔에 다음과 같은 결과가 표시됩니다.
123
부동 소수점 리터럴
부동 소수점 숫자는 소수가 포함된 숫자입니다(예: 3.14159). C#은 소수를 나타내는 세 가지 데이터 형식, 즉 float
, double
및 decimal
을 지원합니다. 각 형식은 다양한 정밀도를 지원합니다.
Float Type Precision
----------------------------
float ~6-9 digits
double ~15-17 digits
decimal 28-29 digits
여기서 정밀도는 정확한 소수를 지나는 자릿수를 반영합니다.
코드 편집기에서 다음 코드 줄을 추가합니다.
Console.WriteLine(0.25F);
float
리터럴을 만들려면 숫자 뒤에 문자F
를 추가합니다. 이 컨텍스트에서는F
을 리터럴 접미사라고 합니다. 리터럴 접미사는float
형식의 값을 사용하려는 것을 컴파일러에 알립니다. 소문자f
또는 대문자F
을float
에 대한 리터럴 접미사로 사용할 수 있습니다.녹색 실행 단추를 눌러 코드를 실행합니다. 출력 콘솔에 다음과 같은 결과가 표시됩니다.
0.25
float
데이터 형식이 가장 정확하지 않으므로 고정 소수 값에 이 데이터 형식을 사용하여 예기치 않은 계산 오류를 방지하는 것이 가장 좋습니다.코드 편집기에서 다음 코드 줄을 추가합니다.
Console.WriteLine(2.625);
double
리터럴을 만들려면 10진수를 입력합니다. 리터럴 접미사 없이 10진수를 입력하면 컴파일러가 기본적으로double
리터럴로 설정됩니다.녹색 실행 단추를 눌러 코드를 실행합니다. 출력 창에 다음 결과가 표시됩니다.
2.625
코드 편집기에서 다음 코드 줄을 추가합니다.
Console.WriteLine(12.39816m);
10진 리터럴을 만들려면 숫자 뒤에
m
글자를 추가합니다. 이 컨텍스트에서는m
을 리터럴 접미사라고 합니다. 리터럴 접미사는decimal
형식의 값을 사용하려는 것을 컴파일러에 알립니다. 소문자m
또는 대문자M
을decimal
에 대한 리터럴 접미사로 사용할 수 있습니다.녹색 실행 단추를 눌러 코드를 실행합니다. 출력 콘솔에 다음과 같은 결과가 표시됩니다.
12.39816
부울 리터럴 사용
true
또는 false
를 나타내는 값을 출력하려는 경우 bool 리터럴을 사용하면 됩니다.
부울의 경우 용어 bool
이 짧습니다. C#에서는 공식적으로 “bool”이라고 하지만, 개발자는 “Boolean”이라는 용어를 사용하는 경우가 많습니다.
코드 편집기에서 다음 코드 줄을 추가합니다.
Console.WriteLine(true); Console.WriteLine(false);
녹색 실행 단추를 눌러 코드를 실행합니다. 출력 콘솔에 다음과 같은 결과가 표시됩니다.
True False
bool
리터럴은 참과 거짓을 나타냅니다. 여기서는 애플리케이션에 의사 결정 논리를 추가하기 시작할 때 bool
값을 광범위하게 사용할 것입니다. 식을 평가하여 식이 true인지, false인지를 확인합니다.
데이터 형식을 강조하는 이유
데이터 형식은 C#에서 중심적인 역할을 합니다. 실제로, 데이터 형식에 중점을 두는 것은 JavaScript와 같은 다른 언어와 C#을 차별화하는 주요 기능 중 하나입니다. C# 디자이너는 데이터 형식을 ‘적용’하여 개발자의 일반적인 소프트웨어 버그를 방지할 수 있다고 생각했습니다. C#에 대해 자세히 알아보면 이 개념을 이해하게 될 것입니다.
데이터 형식이 기능을 정의
앞에서 string
과 char
는 “계산이 아닌 프레젠테이션”에 사용됨을 확인했습니다. 숫자 값에 대해 수학 연산을 수행해야 하는 경우 int
또는 decimal
을 사용해야 합니다. 프레젠테이션이나 텍스트 조작에 사용되는 데이터가 있는 경우 string
또는 char
데이터 형식을 사용해야 합니다.
전화 번호나 우편 번호와 같은 데이터를 사용자로부터 수집해야 한다고 가정해 봅시다. 거주하는 국가/지역에 따라 해당 데이터는 숫자로 구성될 수 있습니다. 그러나 전화 번호와 우편 번호에 대해 수학 계산을 수행하는 경우는 거의 없기 때문에, 작업 시 string
데이터 형식을 사용하는 것이 좋습니다.
bool
의 경우도 마찬가지입니다. 애플리케이션에서 "true"
및 "false"
단어를 사용해야 하는 경우 string
을 사용합니다. 그러나 평가 시 true
또는 false
의 개념을 사용해야 하는 경우에는 bool
을 사용합니다.
이러한 값이 문자열 리터럴처럼 보일 수 있다는 사실을 아는 것이 중요합니다. 즉, 다음 문을 동일한 것으로 생각할 수 있습니다.
Console.WriteLine("123");
Console.WriteLine(123);
Console.WriteLine("true");
Console.WriteLine(true);
그러나 비슷한 것은 표시된 출력뿐입니다. 실제로 기본 int
또는 bool
로 수행할 수 있는 작업 종류는 해당 string
과 다릅니다.
요약
중요한 점은 많은 데이터 형식이 있지만 지금은 다음 몇 가지 데이터 형식만 중점적으로 살펴본다는 것입니다.
- 계산이 아닌 프레젠테이션용 단어, 문구 또는 영숫자 데이터에 사용되는
string
- 단일 영숫자 문자에 사용되는
char
- 정수에 사용되는
int
- 분수 구성 요소가 있는 숫자의 경우
decimal
true
/false
값의 경우bool