Skip to content

Sanab o'tiladigan turlar (Enums)

C++ Enum

Enum — konstantalar (o'zgarmas qiymatlar) guruhini ifodalovchi maxsus tur.

Enum yaratish uchun enum kalit so'zidan foydalaning, enum nomini ko'rsating va elementlarni vergul bilan ajrating:

MISOL

cpp
enum Level {
  LOW,
  MEDIUM,
  HIGH
};

MA'LUMOT

  • Oxirgi elementga vergul qo'yish shart emas.
  • Katta harflar ishlatish shart emas, lekin yaxshi amaliyot hisoblanadi.
  • Enum so'zi "enumerations" (sanab o'tilganlar) so'zining qisqartmasi.

Enum o'zgaruvchisini yaratish

Enumga murojaat qilish uchun uning o'zgaruvchisini yaratish kerak:

MISOL

cpp
enum Level myVar;

O'zgaruvchiga qiymat berishda, qiymat enum elementlaridan biri bo'lishi kerak (LOW, MEDIUM yoki HIGH):

MISOL

cpp
enum Level myVar = MEDIUM;

Standart holda, birinchi element (LOW) qiymati 0, ikkinchisi (MEDIUM) 1 va hokazo. Agar myVar ni chiqarsangiz, 1 chiqadi (MEDIUM ni anglatadi):

MISOL

cpp
int main() {
  enum Level myVar = MEDIUM;
  cout << myVar;  // Natija: 1
  return 0;
}

Qiymatlarni o'zgartirish

Enum elementlarining qiymatlarini o'zgartirish mumkin:

MISOL

cpp
enum Level {
  LOW = 25,
  MEDIUM = 50,
  HIGH = 75
};

int main() {
  enum Level myVar = MEDIUM;
  cout << myVar;  // Endi 50 chiqaradi
  return 0;
}

Agar bitta elementga qiymat bersangiz, keyingi elementlar avtomatik yangilanadi:

MISOL

cpp
enum Level {
  LOW = 5,
  MEDIUM,  // Endi 6
  HIGH     // Endi 7
};

Switch operatorida Enum

Enumlar ko'pincha switch operatorlarida mos qiymatlarni tekshirish uchun ishlatiladi:

MISOL

cpp
enum Level {
  LOW = 1,
  MEDIUM,
  HIGH
};

int main() {
  enum Level myVar = MEDIUM;

  switch (myVar) {
    case 1:
      cout << "Past daraja";
      break;
    case 2:
      cout << "O'rta daraja";
      break;
    case 3:
      cout << "Yuqori daraja";
      break;
  }
  return 0;
}

NIMA UCHUN VA QACHON ENUM ISHLATILADI?

Enumlar konstantalarga nom berish uchun ishlatiladi, bu esa kodni o'qishni va saqlashni osonlashtiradi.

Enumlarni o'zgarmaydigan qiymatlar uchun ishlating, masalan: oy kunlari, hafta kunlari, ranglar va hokazo.