π νλ‘κ·Έλλ° μΈμ΄ - Ordinal Data Type
π« μ¬μ©μ μ μ μμ νμ
π« μμ νμ - Ordinal type
- κ°λ₯ν κ°λ€μ λ²μκ° μμ μ μ μ§ν©κ³Ό μ°κ³λλ νμ
κΈ°λ³Έ μμ νμ - Javaμ integer, char νΉμ Cμ int, short, char
- μ¬μ©μ-μ μ μμ νμ
- μ΄κ±°
- λΆλΆ λ²μ
β μ¬μ©νλ©΄ μ½λκ° κ°κ²°ν΄μ§κ³ κ°λ μ±μ΄ μ’μμ§λ€.
π« μ΄κ±° νμ - Enumeration Type
- μ΄κ±° μμ(enumeration constants)λ€μ λͺ¨μμ μ μνκ³ κ·Έλ£Ήνν νμ
- C#, Enum
- μ΄κ±° μμμλ μ νμ μΌλ‘ μ μ κ° 0, 1, β¦ λ±μ΄ μ묡μ μΌλ‘ ν λΉλλ μμμ κ°μ λͺ μμ μΌλ‘ ν λΉνλ κ²λ κ°λ₯
𫧠μ€κ³ κ³ λ €μ¬ν
μ΄κ±°νμ΄ μ μνμΌλ‘ κ°μ νλ³ν κ°λ₯νκ°?
μ΄κ±°νκ³Ό μ μμ΄μΈμ νμ
κ³Όμ κ΄κ³λ₯Ό νμ©ν κ²μΈκ°?
- μ΄κ±° νμ μ΄ μ 곡λμ§ μλ μΈμ΄μμλ μ μλ₯Ό μ΄μ©νμ¬ μ΄κ±°νμ νλ΄λ
1
2
3
4
5
6
7
#define MALE 0
#define FEMALE 1
// or
int const MALE = 0;
int const FEMALE = 1;
if (gender == MALE) // ~
- μ΄κ±° νμ μ μ΄μ©νλ©΄ μλ‘μ΄ νμ μ μ μνκ² λκ³ κ°λ μ±μ ν₯μμν¨λ€.
1
2
3
4
5
6
7
enum Gender
{
MALE = 0,
FEMALE = 1
};
if (gender == MALE) // ~
@ C, Pascalμ μ΄κ±°νμ μ²μμΌλ‘ λμ
νμ¬ λ리 μ°μΈ μΈμ΄
@ Cλ μ΄κ±° νμ
enumμ κΈ°λ³Έ νμ
μΌλ‘ μ 곡
- μ΄κ±° νμ
μ μ 곡νλ λλΆλΆμ μΈμ΄μμ μ μ νμ
κ³Όμ νλ³νμ νμ©νμ§ μμ
- μ΄κ±° νμ μ μ΄κ±° νμ μ΄μ§ μ μνμ μλ, λ¨ μ΄κ±°νμ κ°μ μ μνμΌλ‘ μ°Έμ‘°λ κ°λ₯
- C++, Java, Python, β¦
- λ°λ©΄ Cμμλ νμ©
- i.e.
gender++, gender = 0;
- i.e.
- Java, Java 5.0(2004)μ java.lang.Enum κΈ°λ³Έ νμ
μΌλ‘ μ 곡
- λͺ¨λ μ΄κ±° νμ μ 묡μμ μΌλ‘ java.lang.Enumμ μμμ λ°μ (μ μν X)
- λ°λΌμ toString, ordinal, values λ± λͺλͺ λ©μλλ€μ μ¬μ© κ°λ₯
- ν₯λ―Έλ‘κ²λ μ€ν¬λ¦½νΈ μΈμ΄ μ€ μ΄κ±° νμ
μ κΈ°λ³Έ νμ
μΌλ‘ μ§μνλ κ²μ μμ
- νμ€ λΌμ΄λΈλ¬λ¦¬μ μ 곡
- JavaScript, Python, Ruby, Lua, PHP, β¦
𫧠νκ°
μ΄κ±°νμ κ°λ μ±κ³Ό μ λ’°μ±μ ν₯μμν¨λ€.
μ΄κ±°νμ μ°μ μ°μ°μ νμ©νμ§ μκ³ (μ΄κ±°νμ μ μνμ΄ μλ), μ μλ λ²μ λ°μ κ°μ ν λΉ λ°μ μ μκΈ° λλ¬Έμ.
C, μ΄κ±°νμ μ μνμ²λΌ μ·¨κΈ, μ΄λ κ°λ
μ±μ ν₯μμν€μ§λ§ μ λ’°μ± λ¬Έμ λ₯Ό μΌκΈ°ν μ μλ€.
C++, μ΄κ²¨ν λΉκ΅μ°μ° μ μ μν νμ
μ²λΌ λ€λ€ μ§ μ μλ€.
π« λΆλΆ λ²μ νμ
- μμ νμ
μ μ°μλ λΆλΆ μμμ΄(subsequence)
- μ) 12..14
κ°λ μ±κ³Ό μ λ’°μ±μ ν₯μμμ§λ§, λλΆλΆ μΈμ΄μμ μ°¨μ©νμ§ μμ.