어서 오세요
이제 데이터 타입에 대해 몇 가지 더 얘기해보죠
이번 강의에서는 열핵 데이터 타입과 Char 케어 데이터 타입에 대해 알아보도록 하죠
적 아이템은 데이터 타입으로 프로그래머가 변수를 정의하고 그 변수에 저장될 유효한
값을 지정할 수 있게 해주죠
열핵은 아주 강력해요
데이터 타입을 지정하고 있어요
열거라는 키워드가 있는데 특정 값만을 포함하는 데이터 타입을 가질 수 있어요
예를 들어, 색상 이름을 가진 변수를 생성하고 특정 열거형 유형이라면 빨강,
노랑, 파랑 같은 원색만 포함시키거나 할당하도록 설정할 수 있어요 그리고
다른 값은 할당하지 않죠
컴파일러가 오류를 낼 거예요
생성할 수 있도록 명시할 수 있는 일종의 데이터 형식이죠 데이터 형식을
정의하고 그 형식의 변수를 생성해야 하죠
열거형은 키워드로군요
이 열거형 데이터 타입을 사용하려면 가장 먼저 해야 할 일은 해당 열거형
유형을 정의하고 이름을 붙이는 거예요 변수 이름처럼 식별자죠
어떻게 하느냐면 열거형 키워드를 사용하고 열거형 키워드를 쓴 후에는
식별자 같은 이름을 제공해요
그런 다음 식별자 다음엔 모든 유효한 값의 리스트를 중괄호 안에
넣죠
기본적으로 이 열거형은 이 값들만 가질 수 있다는 거죠
열거형 변수를 나중에 사용하고 싶다면 열거형 변수를 생성한다고 선언하세요
어떻게 작동하는지 보죠
원색이라는 열핵형을 정의하고 있어요
열거형 키워드도 있고 열거형 키워드 이름이 있는데 열거형은 원색이에요
그리고 유형의 모든 값을 정의하죠
중괄호 안에 밀폐된 게 보이실 겁니다 왼쪽 중괄호와 오른쪽 중괄호요
이 경우엔 프라이머리 색이라는 열핵 형식이 있어요 빨강, 노랑, 파랑의 값만 담을 수
있죠
그래서 아무것도 저장할 수 없어요 기본색에 값을 할당하거나 기본색 데이터 유형을
사용해 다른 것에 변수 값을 할당하면 작동이 안 되죠
이렇게 정의하는 거죠
먼저 열핵을 정의한 다음 다시 사용해야 해요
Definition은 이런 거예요
지금 보시는 건 흰색으로 된 원색이에요
빨강, 노랑, 파랑도 돼요
그래서 기본색 유형으로 선언된 변수는 빨강, 노랑, 파랑 값만 할당할 수
있죠
프로그램 내에서는 그 어떤 값도 통하지 않아요
다시 말하지만 첫 단계는 정의하는 거죠
두 번째 단계는 사용하는 거예요
정의가 끝나면 이 형식의 기본색 변수를 선언할 수 있어요 우리가 선언한 방식으로요
현재 변수는 여전히 enum 키워드를 사용하죠
그럼 우리가 정의했을 때 지정한 열거형의 이름을 갖게 되는 거죠
그리고 마지막에는 변수 리스트를 이용하고요.
여기 예제가 있어요 열거형이죠 열거형 키워드를 사용해요 열거형의 이름을 정했죠
프라이머리 컬러라고 방금 만들었어요
우린 이름만 알죠
여기 원색 타입의 적이 둘 있어요
저와 그레그의 색이죠
여기서도 열핵을 사용하죠
열핵은 이미 정의했죠 빨강, 노랑, 파랑으로요
이제 우리가 가진 두 개의 변수는 내 색깔과 회색이라 명명됐고 이 세 가지 값 중 하나만 담을
수 있고 다른 건 담을 수 없어요
여기서 기본색 변수를 선언하죠
이건 제 색과 그레이의 색 두 가지 변수를 기본색으로 정의하고 있어요
열핵형이에요 이 변수에 할당되는 유일한 허용값이죠
이 두 변수는 빨강, 노랑, 파랑이에요
내 색깔은 빨간색이라고 할 수 있죠
전적으로 타당해요
내 색이 녹색이라고 할 순 없죠
이 값은 열거형에 유효하지 않기 때문에 사용할 수 없어요.
내 색은 Jason과 같다고 할 수 없죠 내 색은 기본색 열거형의 값만 포함할
수 있으니까요
이것은 매우 강력한 데이터 타입입니다. 왜냐하면 특정 값만 가지고 있는 당신의 데이터 타입을
정의하는 것이기 때문이죠.
다른 예제로는 월 형식의 열거형을 만들게요 여기서 말하는 월은 1월, 2월, 3월,
4월, 5월, 6월, 7월, 8월이죠
10월, 11월, 12월에요
다시 말하지만 이게 정의예요
여기서 유효한 값이 뭔지 말하고 있죠
만약 월을 사용한다면 Enum Month라는 변수를 생성할 수 있습니다 그리고 원하는 이름을
생성할 수 있죠
그런 다음 해당 이름을 유효한 달인 1월부터 12월에 할당할 수 있어요
열핵은 이렇게 쓰는 거예요
C 프로그래밍 언어로 소득이 어떻게 구현되는지가 정말 숫자로
나타나요?
컴파일러가 열거 식별자를 정수 상수로 다루네요
목록에서 여러분이 정의한 첫 번째 이름은 값을 프린트하려 하면 0이
되겠죠
다시 말하지만 어떻게 정의하는 걸까요?
출력을 디스플레이한다면 실제 값은 무엇일까요?
이 말의 의미는 a월을 입력하면, 이 월에 enum 월이라는 새 변수를 생성하고
이 월이 2월과 같다고 하는 거죠
이 달은 사실 정수와 같아요
하지만 2월과 비교할 수 있어요
하지만 콘솔에 이 달을 프린트하면 이 달은 목록에서 정의될 때에
맞는 정수 값이 될 거예요
이 경우엔 2월이 그 중 하나죠
이번 달은 두 번째가 2월이거든요
그렇죠?
아까 정의한 걸 기억하시면 두 번째는 2월이에요
두 번째 것이긴 하지만 첫 번째라는 걸 아셔야 해요
그 말은 리스트가 0으로 시작한다는 뜻이니까요
1월은 0일, 2월은 1일 3월은 2일 그런 식이었죠
이것은 아주 중요합니다. 왜냐하면 2월 같은 실제 값과 비교할 수 있기
때문이죠.
열거 식별자와 관련된 특정 정수 값을 원할 경우 할당 연산자를
이용해 확실히 뭔가를 할당할 수 있어요
형식을 정의할 때요
예를 들어 여기서 새로운 형식 방향의 열거형을 정의할 때 방향에 대한 유효한 값이
위, 아래, 왼쪽, 오른쪽이라고 하면 왼쪽 세 번째 값은 등호가 있는 걸
보실 수 있어요 왼쪽 값은 10이 될 거라는 거죠
이 경우 열거형 방향은 상하좌우로 정의되죠
여러분이 할당할 수 있는 유일한 유효한 값이죠
이 형식의 변수는 0이 될 겁니다 목록 정의의 첫 번째 요소니까요
하나는 아래와 같을 거예요 두 번째 요소니까요
다시 말하지만 0에서 시작해요
10은 왼쪽과 같겠죠
2와 같지 않을 겁니다 왜냐하면 명시적으로 10과 같도록 할당했으니까요
왼쪽은 10이 될 겁니다 그게 정의에 넣은 거니까요
그리고 오른쪽은 11이 되겠죠 왜냐하면 바로 다음, 바로
다음이 될 테니까요
또 다른 값이 있다면 12가 되겠죠
원하면 값을 명시적으로 할당할 수 있어요
근데 이게 중요한 건 왜냐하면 비교를 하거나 값을 출력할 때 게놈이
시스템 안에서 정수로 표시된다는 것만 알면 되거든요
하지만 열거형에 서명할 땐 2월, 3월, 1월을 쓸 수 있어요 그 값을 다른 값과
비교할 때 1월, 2월, 3월을 쓸 수 있죠 그래도 사용할 수 있어요
멋진 이름들이죠
적에 대한 과제나 도전을 할 거예요 여러분이 좀 더 익숙해질 수
있도록요
여기서 중요한 건 어떻게 열핵형을 만드느냐는 거죠
그런 형식의 변수를 어떻게 생성하고 값을 할당할 수 있을까요?
할당된 것을 컨트롤할 수 있어서 좋아요
오른쪽 코너 같은 곳에 방향을 지정하고 싶지 않다면 위, 아래, 왼쪽, 오른쪽을 정의하면
돼요
제가 말씀드리고 싶은 또 다른 중요한 데이터 타입은 CHA 혹은 케어입니다 발음은 어떻게 하느냐에 따라 다르겠죠
지금까지 주로 숫자 데이터 타입을 다뤘는데요
열핵에 관해 얘기했죠
샤아는 L A라는 한 글자를 뜻해요
숫자 6이나 세미콜론이요
여기 보이는 건 작은따옴표예요
성격을 아는 이유는 1은 숫자인데도 작은따옴표로 되어 있기 때문이죠
프로그램에서 작은따옴표 안에 있는 건 모두 문자 데이터 타입이죠
보통 ABCD나 FG 같은 알파벳과 숫자가 같은 문자를 쓰지만 키보드
상의 실제 숫자나 다른 문자일 수도 있어요
서명 없는 캐릭터 변수도 선언할 수 있어요
서명은 음성일 수 없다는 뜻이죠
그래서 말이 잘 안 돼요
컴파일러에게 서명되지 않은 글자가 있는데 그건 긍정적인 숫자일 뿐이에요 아스키티
테이블에서도 글자는 숫자로 표현될 수 있으니까요
그 얘기는 잠시 후에 하죠
하지만 문자 데이터 형식과 문자열을 혼동해선 안 되죠
문자 데이터 타입은 작은따옴표 안에 있는 한 글자죠
문자열에 관해 얘기할 다른 섹션도 있어요
여러 캐릭터가 연속적으로 등장할 거예요
문자열, 문자열, 문자열과 헷갈리지 마세요
글자를 선언하고 사용하고 싶다면 데이터 타입을 지정하면 됩니다 char나 care 같은 것을요 그리고
식별자를 지정하죠
이 예제에서는 숯불에 구웠어요
char 형식 브로일드라는 변수를 선언하죠.
해당 변수를 할당할 때 그걸 넣죠
작은따옴표 안에 값을 넣죠
뇨키와 같은 크기로 구워도 괜찮아요
끓인 = 홍차라고 하려는데 홍차가 따옴표 안에 없으면 안 되죠 홍차가 변수니까요
RT가 char 타입이 아니면 유효하지 않죠
로열 = 더블 따옴표가 있어요
T도 유효하지 않아요 큰 따옴표와 C는 문자열을 의미하거든요 나중에 더 얘기할 테지만
유효하지 않아요
작은 따옴표를 빼면 컴파일러는 T가 변수 이름인 줄 알고 사용할
수 없어요
큰따옴표를 사용하면 문자열을 사용한다고 생각할 거예요
말씀드렸듯이 숫자 코드를 이용해서 값을 매길 수도 있고 ASCI 테이블을
이용하면 돼요
아스키티 테이블은 컴퓨터에서 캐릭터가 숫자로 표현되는 방법이죠
테이블이 하나 있어요
기본적으로 문자 형식에 숫자를 할당하면 ASCI 값을 할당한다고 생각할 거예요
그레이딩에 65를 할당할 거예요
ASCI 테이블에서 65를 보게 될 거예요 어떤 캐릭터든 그에 상응하는
게 되겠죠
아스키 테이블을 봐야 어떤 캐릭터인지 알 수 있어요
B가 48살인 건 알아요
이런 식으로 컴퓨터가 특정 캐릭터를 숫자로 표시하는 거예요
문자에 숫자를 할당할 순 없어요 ASCI 테이블에 있는 것에 근거해 단일
문자로 변환되니까요
탈출 캐릭터요
이 용어는 여러분이 들어보게 될 특별한 용어입니다 액션과 C# 프로그래밍 언어를
대표하는 특별한 캐릭터죠
예를 들어 백 스페이스를 대표하는 특수 캐릭터가 있을 수도 있고 새 라인을 대표하는 특수 캐릭터가
있을 수도 있어요
종말의 종소리를 상징하는 특별한 캐릭터일 수도 있죠
이 동작들을 표현하기 위해 어색한 기호를 사용할 수 있습니다 작은따옴표 안에 있는 글자 같은 거죠
몇 가지 예를 들어볼게요
탈출 시퀀스라고도 하죠
액션을 상징하는 특별한 캐릭터들이죠
ESC 시퀀스도 작은 따옴표로 채워져 있어요 문자 변수에 할당되면요
끈으로 된 탈출 시퀀스도 액션을 나타내요
예를 들어 여기 글자 x = 작은따옴표 n이 있죠
많은 탈출 캐릭터들이 백슬래시로 시작해요
하지만 백슬래시 엔드는 단일 캐릭터로 좀 이상해 보이죠
프로그램에서 새로운 라인을 상징하는 거죠
그 문자를 출력해서 프린트하려고 하면 백슬래시 n을 실제로 프린트하지 않아요
새 라인을 프린트하죠
새로운 라인을 볼 수 있어요
출력해요
샤엑스는 이 캐릭터예요
변수 x를 프린트하면 다음 행만 전진하죠
탈출 시퀀스도 여러 가지죠
이 작은 탁자는 시 프라이머 책에서 가져왔는데 사용할 수 있는 모든 탈출
캐릭터를 나타내죠
백슬래시를 언급했죠
새로운 대사네요
백슬래시요
R은 캐리지 리턴이에요
백슬래시 5는 세로 탭이죠
백슬래시 T는 수평 탭 같아요
이것에 대한 예제를 보여드리고 코드 블록 에디터 내부의 Enum에 대한 예제도 보여드릴게요
그래서 여기 익숙한 프로그램이 있어요 주요 방법과 열핵으로 구성돼 있죠
열거형은 좋은 기능입니다 어떤 값을 할당할지 결정할 수 있기 때문이죠
하지만 두 단계가 있어요
열거형을 만들 땐 유형을 정의해야 해요 그런 다음 유형의 변수를 만들어야
하죠
둘 다 열핵 키워드죠
새로운 타입의 열거를 만들고 싶다면 이 열거를 어떤 값과 동일하게 하고 싶다면 예를
들어, 타입의 열거를 만들 수 있습니다. a라고 해보죠.
이눔형 성별도 있어요
그다음 할 일은 뒤쪽에 있는 구불구불 괄호를 이용하는 거죠
대괄호와 구불구불 괄호도 헷갈리지 마세요
그리고 성별이 지닐 수 있는 가치 목록을 정의했죠
그냥 남자라고 적고 쉼표 찍고 여자라고 적고 세미콜론으로
끝내요
성별이라는 새로운 유형이 있다는 뜻이죠
열형 혈액형이에요
이런 유형의 변수에 할당되는 값은 남성과 여성뿐이에요
이 열거를 사용하고 싶다면 새 변수를 생성할 수 있어요
유형의 성별 이름을 입력하기만 하면 돼요
그리고 제 성별을 말하면 돼요
그렇죠?
이렇게 변수를 선언하죠
제 성별 변수를 선언했지만 어떤 값도 할당하거나 초기화하지 않았죠
남성이나 여성으로만 규정할 수 있어요
제 성별이 남자라고 할 수 있죠 그것도 타당해요
우리가 컴파일을 한다면요
이거면 되겠어요
오류는 없어요
뭔가 다른 걸 할당하려고 하면∙∙∙ 문자열을 할당한다고 칩시다
숫자 44도 할당하려고 해보죠
이걸 만들어 볼까요?
오류 없이 빌드된 걸 보실 수 있죠 int였거든요
끈으로 묶거나 하면 더 비싸게 팔릴 거예요
배정할 때 호환되지 않는 타입이라고 하죠
오류가 있는 거죠
잘 안 보여요
하지만 기본적으로 문자열을 할당할 수 없어요
44번 유형이 아니니까요
남자나 여자만 서명할 수 있어요
이제 정수값과 관련해서 뭘 나타내는지 볼게요 타이핑을 하고 Man을
입력하죠
그걸 다른 변수와 비교해서 또 다른 열핵형의 성별 유형을 만들 수
있죠
항상 좋은 명명 규칙을 사용해야 해요
철자가 맞는지 확인해요
여성 하느님이라고 할 수 있죠 그런 다음 부울 값을 생성하라고 할 수 있어요
참 또는 거짓은 소울이 남자라고 할 수 있고 남자와 여자가 같다고 할 수 있죠
죄송해요, 남성이 여성과 동등한 건 아니지만 제 성별도 동등해요
또 다른 성별이죠 이건 거짓으로 반환돼요 제 성별은 다른 성별과 같지 않으니까요
제 성별은 남성과 동일하고 다른 성별은 여성 실패와 동일합니다 죄송합니다, 남성이라면 거짓
값이나 0 값이 설정되겠죠
하지만 적을 프린트해서 값도 볼 수 있어요
열거형 성별 값을 프린트할 경우… 변수를 프린트하는 법은 아직
못 배웠지만 f 같은 걸 프린트하면 성별이 나오죠 제 성별은
0이 될 거예요 목록의 첫 번째니까요
또 다른 성별이 하나와 같을 거예요
아주 근사하죠
예제에서 chars에 대해서도 약간 얘기하고 싶은데요, 기억하세요.
변수 이름으로 chars 단일 문자를 만들 수 있어요.
그냥 char 형식을 사용하고 Char, 즉 제 캐릭터라고 하면 작은따옴표로 무엇이든 맞출
수 있어요.
jf로 할 수도 있고 variables로 할 수도 있죠 테이블에서 ASCI넘버를 나타낼 거예요
이게 좋은 건 백슬래시 n 같은 특정 동작을 대표하는 ESC 캐릭터를 할당할 수 있다는
거죠
이걸 사용하거나 프린트하려 하면 새로운 라인 피드를 프린트해 f를 프린트할
수 있고 f도 프린트할 수 있죠 %C 같은 걸 해야 합니다 다음 강의에서 다루겠습니다 그런
다음 캐릭터를 프린트하죠
그럼 새 라인이 스크린에 디스플레이돼요 라인 피드요
우리가 이걸 만든다면요
우리가 운영해야 해요
우리가 실제로 볼 수 있는 건 새 라인 출력이죠
저 위에 보이죠
새로운 대사네요
아주 구체적인 행동이죠
출력이 전혀 안 돼요
하지만 예제를 더 살펴볼게요
제가 여기서 보여드리려고 했던 건 열거형 구조와 캐릭터들 그리고 탈출 시퀀스, 캐릭터들이에요
이런 걸 배우는 좋은 방법은 ID 안에서 형식 코드를 갖고 놀면서 어떻게 되는지
보는 거죠
하지만 추가로 여러분의 평가에 도움이 될 과제도 제공할 거예요
도움이 됐으면 좋겠네요
고마워요