18 / 90

C++ switch..case Statement

C++ switch...case operatori

switch operatori bizga ko'plab alternativalar orasida kod blokini bajarishga imkon beradi.

if...else operatori bilan ham xuddi shunday qilishingiz mumkin. Biroq, switch operatorining sintaksisini o'qish va yozish ancha oson.

Sintaksis

example.cpp
switch (expression)  {
    case constant1:
        // bajariladigan kod, agar
        // ifoda doimiy1 ga teng;
        break;

    case constant2:
        // bajariladigan kod, agar
        // ifoda doimiy2 ga teng;
        break;
        .
        .
        .
    default:
        // bajariladigan kod, agar
        // ifoda hech qanday konstantaga mos kelmaydi
}

Switch operatori qanday ishlaydi?

expression bir marta baholanadi va har bir case yorlig'ining qiymatlari bilan taqqoslanadi.

-Agar mos keladigan bo'lsa, mos keladigan yorliqdan keyin tegishli kod bajariladi. Misol uchun, agar variable qiymati constant2 ga teng bo'lsa, case constant2: dan keyingi kod break operatori paydo bo'lguncha bajariladi.

  • Agar mos kelmasa, default: dan keyingi kod bajariladi.

[!NOTE] Xuddi shu narsani if...else..if narvon bilan ham qilishimiz mumkin. Biroq, switch operatorining sintaksisi yanada toza va o'qish va yozishni ancha osonlashtiradi.

switch operatori sxemasi

C++ switch operatorining blok-sxema... holat bayoni

C++ switch...case flowchart

Misol: switch yordamida kalkulyator yaratish

example.cpp
// Switch Statement yordamida oddiy kalkulyator dastur
#include <iostream>
using namespace std;

int main() {
    char oper;
    float num1, num2;
    cout << "Enter an operator (+, -, *, /): ";
    cin >> oper;
    cout << "Enter two numbers: " << endl;
    cin >> num1 >> num2;

    switch (oper) {
        case '+':
            cout << num1 << " + " << num2 << " = " << num1 + num2;
            break;
        case '-':
            cout << num1 << " - " << num2 << " = " << num1 - num2;
            break;
        case '*':
            cout << num1 << " * " << num2 << " = " << num1 * num2;
            break;
        case '/':
            cout << num1 << " / " << num2 << " = " << num1 / num2;
            break;
        default:
            // operator hech qanday holat konstantasiga mos kelmaydi (+, -, *, /)
            cout << "Error! The operator is not correct";
            break;
    }

    return 0;
}

Chiqish 1

kod
Enter an operator (+, -, *, /): +
Enter two numbers: 
2.3
4.5
2.3 + 4.5 = 6.8

Chiqish 2

kod
Enter an operator (+, -, *, /): -
Enter two numbers: 
2.3
4.5
2.3 - 4.5 = -2.2

Chiqish 3

kod
Enter an operator (+, -, *, /): *
Enter two numbers: 
2.3
4.5
2.3 * 4.5 = 10.35

Chiqish 4

kod
Enter an operator (+, -, *, /): /
Enter two numbers: 
2.3
4.5
2.3 / 4.5 = 0.511111

Chiqish 5

kod
Enter an operator (+, -, *, /): ?
Enter two numbers: 
2.3
4.5
Error! The operator is not correct.

Yuqoridagi dasturda qo'shish, ayirish, ko'paytirish va bo'lish amallarini bajarish uchun switch...case iborasidan foydalanamiz.

Bu dastur qanday ishlaydi

  1. Biz birinchi navbatda foydalanuvchidan kerakli operator ni kiritishni taklif qilamiz. Keyinchalik bu kirish oper nomli char o'zgaruvchisida saqlanadi.
  2. Keyin biz foydalanuvchidan ikkita raqamni kiritishni taklif qilamiz, ular num1 va num2 float o'zgaruvchilarida saqlanadi.
  3. switch operatori foydalanuvchi tomonidan kiritilgan operatorni tekshirish uchun ishlatiladi: Agar foydalanuvchi + ni kiritsa, raqamlarga qo'shish amalga oshiriladi. Agar foydalanuvchi - ni kiritsa, raqamlarda ayirish amalga oshiriladi. Agar foydalanuvchi * ni kiritsa, ko'paytirish raqamlarda amalga oshiriladi. Agar foydalanuvchi / ni kiritsa, bo'linish raqamlar bo'yicha amalga oshiriladi. Agar foydalanuvchi boshqa belgi kiritsa, standart kod chop etiladi.

break operatori har bir case blokida ishlatilishiga e'tibor bering. Bu switch operatorini tugatadi.

Agar break operatori ishlatilmasa, to'g'ri case dan keyingi barcha holatlar bajariladi.

Qo'shimcha ma'lumot olish uchun C++ Program to Make a Simple Calculator -dagi maqolaga tashrif buyurishingiz mumkin.