پرش به محتوای اصلی
رزرو مشاوره تلفنی تک جلسه‌ای با استاد رضوی
رزرو مشاوره تلفنی
کنکور کامپیوتر
0
اشتراک
 

دستور Switch Case چیست و معرفی ساختار آن در زبان های مختلف

دستور Switch Case چیست؟ این صفحه عالی به معرفی ساختار سوئیچ (switch) در زبان های برنامه نویسی سی شارپ، پایتون، جاوا و سی پلاس پلاس و پرداخته است

در زبان های برنامه نویسی روش‌های متفاوتی برای کنترل جریان اجرای برنامه وجود دارد. یکی از متداول‌ترین روش‌ها، استفاده از دستور If…Else If می‌باشد که تقریباً در همه زبان‌های برنامه نویسی وجود دارد؛ ولی در شرایطی که تعداد شروط افزایش پیدا می‌کند، استفاده از این دستور باعث می‌گردد که کدهای برنامه تمیز و مرتب به نظر نرسند و برنامه‌نویس دچار سردرگمی شود. اینجاست که می‌توان از دستور Switch Case استفاده کرد. در واقع استفاده از این دستور کدهای شما را مرتب‌تر می‌کند و باعث بهینه شدن برنامه شما می‌گردد؛ بنابراین لازم است هر برنامه‌نویس با ساختار دستور Switch Case آشنا باشد و بتواند از این دستور به‌درستی استفاده کند و از مزایای آن بهره ببرد.

دستور Switch Case چیست؟

این دستور زمانی کاربرد دارد که بخواهید چندین شرط را برای یک یا چند متغیر بررسی کنید. در واقع این دستور جایگزینی برای If … Else If می‌باشد و باعث می‌گردد بر اثر زیاد شدن شروط، ظاهر کد تمیز مانده و خوانایی آن کاهش نیابد.

فلوچارت Switch Case 

switch caseفلوچارت دستور

در فلوچارت فوق مشاهده می‌کنید که پس از دستور Switch می‌توان چندین دستور Case مورد استفاده قرار گیرد. در واقع متغییری که قصد بررسی آن را داریم را در بخش Switch قرار داده و در ادامه، شروط مختلف را در بخش Case مورد بررسی قرار می‌دهیم. در انتها اگر هیچ کدام از شروط Case برقرار نشود، دستور Default اجرا می‌گردد.

نحوه پیاده‌سازی یا Syntax

نحوه پیاده‌سازی دستور Switch Case ممکن است از زبانی به زبان دیگر متفاوت باشد، ولی ساختار کلی آن به‌صورت زیر می‌باشد:

switch variable:
	case value1:
		Statements 1;
		Break;
	Case value2:
		Statements 2;
		Break;
…	…
	Default:
		Statements executed if no case matches

مزایای استفاده از دستور Switch Case

  1. زمانی که از دستور Switch Case به جای If … Else If استفاده می‌کنید، خوانایی کد افزایش پیدا می‌کند.
  2. دیباگ و پیاده‌سازی راحت‌تر با وجود شروط زیاد.
  3. سرعت اجرای بالاتر.

معایب استفاده از دستور Switch Case

  1. دستور Switch فقط از داده‌های با نوع عدد صحیح (Integer) و رشته (String) استفاده می‌کند (در پایتون این محدودیت وجود ندارد. به عنوان مثال دستور Switch می‌تواند با داده از نوع لیست هم کار کند).
  2. عدم پشتیبانی ازعملگر‌های منطقی.
  3. به ازای هر دستور Case باید از دستور Break استفاده کنیم (در ادامه خواهیم دید که در پایتون این مورد نیز برقرار نمی‌باشد).

دستور Switch Case در زبان سی‌شارپ

نحوه پیاده‌سازی یا Syntax این دستور در زبان سی شارپ به صورت زیر است:

switch (variable)
{
    case value1:
        // Statements that run if variable == value1
        break;
    case value2:
        // Statements that run if variable == value2
        break;
    case value3:
        // Statements that run if variable == value3
        break;
    default:
        // Statements that run if no case matched
}

نکته دیگری که می‌توان به آن توجه کرد، استفاده از Case‌ های گروه بندی شده است. این مورد زمانی کاربرد دارد که بخواهیم به ازای مقادیر متفاوت Variable، یک قطعه کد واحد اجرا شود و بخواهیم از تکرارهای بیهوده جلوگیری کنیم. نحوه استفاده از این متد به صورت زیر است:

char name;
Console.WriteLine("Enter a name: ");
name = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(name)){
    case 'james':
    case 'emily':
    case 'michael':
    case 'sarah':
    case 'david':
        Console.WriteLine("You are in the list!");
        break;
    default:
        Console.WriteLine("You are not invited.");
        break;
}

در قطعه کد بالا مشاهده می‌کنیم که اگر نام وارد شده جزو اسامی باشد که در Caseها آمده است، یک پیغام واحد در خروجی چاپ شده و در غیر این صورت، دستور Default اجرا می‌شود.

دستور Switch Case در زبان پایتون

بر خلاف بسیاری از زبان‌های برنامه‌نویسی، زبان پایتون دستوری به نام Switch ندارد. در واقع تا قبل از پایتون ورژن 3.10 این مفهوم در این زبان وجود نداشت و مجبور به  استفاده از If … Else If بودیم. در نسخه 3.10 ما شاهد اضافه شدن دستور Match Case بودیم و از این دستور می‌توان به جای Switch Case استفاده کرد. نحوه استفاده از Match Case به صورت زیر است:

match variable:
    case value1:
        # Statement 1
    case value2:
        # Statement 2
    case value3:
        # Statement 3
    case value4:
        # Statement 4
    case value5:
        # Statement 5
    case default:
        # Statement default

یکی از تفاوت‌هایی که Match Case با Switch Case در سی شارپ دارد، عدم نیاز به استفاده از دستور Break به ازای هر Case است. از دیگر تفاوت‌های Match Case پشتیبانی از داده‌‌های مختلف است.

names = list(map(lambda x : x.title(), input("Enter 3 names: ").split(" ")))
match names:
    case ["Smith", "Jones", "Miller"]:
        print(f"They are in First group.")
    case ["Williams", "Sanderson", "Gordon"]:
        print("They are in Second group.")
    case ["Jeremy", "Johnny", "Richard"]:
        print("They are in Third group.")
    case default:
        print(f"{names} are not in any group!")

قطعه کد بالا ابتدا سه نام از کاربر دریافت کرده (در یک خط که هر اسم با Space از دیگری جدا شده است) و سپس آن‌ها را در یک لیست ذخیره می‌کند و با استفاده از دستور Match Case به مقایسه آن با سه لیست مختلف می‌پردازد. اگر اسامی وارد شده دقیقاً با یکی از لیست‌های درج شده در برنامه برابر باشد، پیغامی را در خروجی چاپ خواهد کرد و در غیر این صورت، دستور Case Default اجرا خواهد شد.

از دیگر نکات استفاده Match Case در پایتون، می‌توان به استفاده از چندین متغیر برای Match و بررسی آن‌ها در Caseها اشاره کرد. روش پیاده‌سازی این مورد به صورت زیر است:

match value1, value2:
    case 5, 10:
        print(f"value1 = 5 and value2 = 10")
    case 15, 8:
        print(f"value1 = 15 and value2 = 8")
    case 17, 25:
        print(f"value1 = 17 and value2 = 25")

دستور Switch Case در زبان‌های جاوا و سی پلاس پلاس

برای آشنایی هرچه بیشتر با دستور Switch Case، در ادامه می‌توانید پیاده‌سازی برنامه ماشین حساب ساده با استفاده از این دستور را در زبان‌های جاوا و سی پلاس پلاس مشاهده کنید.

جاوا

import java.util.Scanner;
public class Calculator {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the first number:");
    double num1 = sc.nextDouble();
    System.out.println("Enter the second number:");
    double num2 = sc.nextDouble();
    System.out.println("Enter an operator (+, -, *, /):");
    char op = sc.next().charAt(0);
    double result = 0.0;
    switch (op) {
      case '+':
        result = num1 + num2;
        break;
      case '-':
        result = num1 - num2;
        break;
      case '*':
        result = num1 * num2;
        break;
      case '/':
        if (num2 != 0) {
          result = num1 / num2;
        } else {
          System.out.println("Cannot divide by zero");
          return;
        }
        break;
      default:
        System.out.println("Invalid operator");
        return;
    }
    System.out.println(num1 + " " + op + " " + num2 + " = " + result);
  }
}

سی پلاس پلاس

#include <iostream>
using namespace std;
int main() {
  double num1, num2;
  char op;
  cout << "Enter the first number: ";
  cin >> num1;
  cout << "Enter the second number: ";
  cin >> num2;
  cout << "Enter an operator (+, -, *, /): ";
  cin >> op;
  double result = 0.0;
  switch (op) {
    case '+':
      result = num1 + num2;
      break;
    case '-':
      result = num1 - num2;
      break;
    case '*':
      result = num1 * num2;
      break;
    case '/':
      if (num2 != 0) {
        result = num1 / num2;
      } else {
        cout << "Cannot divide by zero" << endl;
        return 0;
      }
      break;
    default:
      cout << "Invalid operator" << endl;
      return 0;
  }
  cout << num1 << " " << op << " " << num2 << " = " << result << endl;
  return 0;
}

جمع‌بندی

دستور Switch Case یکی از پرکاربردترین دستورها در برنامه نویسی است که با استفاده از آن می‌توان کدهای تمیزتر و خواناتر نوشت. شاید به دلیل برخی از محدودیت‌هایی که این دستور دارد، مجبور شویم که از دستور If … Else If استفاده کنیم ولی پیشنهاد می‌شود در حد امکان برای بررسی شروط، از این دستور استفاده کنید تا بتوانید از مزیت‌های Switch Case بهره‌مند شوید.

دستور Switch Case چیست؟

این دستور یک متغیر را دریافت و شروط مختلفی را برای مقدار آن بررسی می‌کند که در صورت برآورده شدن یکی از شروط، قطعه کد خاصی اجرا می‌شود.

فرق دستور Switch Case و If … If Else چیست؟

در نگاه اول شاید به نظر برسد این دو دستور مانند هم عمل می‌کنند، ولی تفاوت‌هایی وجود دارد؛ به عنوان مثال اگر تعداد شروط زیاد باشد، خوانایی کدی که با استفاده از Switch Case پیاده‌سازی شده است بیشتر از کدی است که با استفاده از  If … Else If پیاده‌سازی شده است.

دستور Break و Default در Switch Case چه کاری را انجام می‌دهند؟

استفاده از دستور Break باعث می‌شود زمانی که شرط یکی از Caseها برقرار شد، مابقی Caseها بررسی نشوند (به جز پایتون که نیازی به استفاده از Break نیست) و دستور Default زمانی استفاده می‌شود که بخواهیم در صورتی که هیچ کدام از شروط برآورده نشد، قطعه کد مشخصی اجرا شود.

این مطلب چقدر به کارت آمد؟511111111115.00 از ۵ 2 رأی
اشتراک

پرسش و پاسخ داوطلبان کنکور ارشد کامپیوتر

سوال شما توسط استاد رضوی پاسخ داده می‌شود و از طریق پیامک به شما اطلاع رسانی می‌شود
×
kb
هیچ نظری ارسال شده در اینجا وجود ندارد
تلگرام اینستاگرام تماس با پشتیبانی: 09378555200 تماس با پشتیبانی: 09378555200
خدمات ما
پشتیبانی کنکور کامپیوتر

سؤالی داری؟ از ۸ صبح تا ۱۰ شب پاسخ‌گوییم.

تماس با پشتیبانی۰۹۳۷۸۵۵۵۲۰۰ پشتیبانی در تلگرامپاسخ‌گویی پیامی
شبکه‌های اجتماعی
کانال تلگرام اینستاگرام آپارات یوتیوب
اشتراک‌گذاری این مطلب

دستور Switch Case چیست و معرفی ساختار آن در زبان های مختلف

تلگرام واتس‌اپ ایکس
https://www.konkurcomputer.ir/دستور-switch-case-چیست.html
خدمات کنکور کامپیوتر
هر چیزی که برای قبولی لازم داری، یک‌جاخدمات ما

از مشاوره‌ی شخصی با استاد رضوی تا فیلم‌های دروس، پلتفرم‌ها و ابزارهای رایگان

مشاوره‌ی شخصی با استاد رضوی
تماس با پشتیبانی