معرفی دستور سوییچ در زبان برنامه نویسی جاوا

*بانو بهار*

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/08/15
ارسالی ها
3,937
امتیاز واکنش
10,965
امتیاز
804
محل سکونت
میان شکوفه‌ها
پس از آشنایی با دستورات شرطی if حال نوبت به آشنایی با مبحث switch در زبان برنامه نویسی جاوا می رسد. در حقیقت switch بیانگر شرط در برنامه نویسی جاوا اما به شکل دیگری است. به عبارت دیگر استفاده از دستورات if و else برای زمان هایی مناسب تر اند که ما دو احتمال بیشتر نداشته باشیم. به طول مثال یا سن شما بالای 30 است و یا زیر 30 است. حال اگر بخواهیم تعداد احتمالات را افزایش دهیم می بایست از دستور switch استفاده کنیم.

به خاطر داشته باشید
فراموش نکنیم که با استفاده از دستورات if و else نیز می توانیم احتمالات بیش از دو مورد را مورد سنجش قرار دهیم اما این در حالی است که باید کد بیشتری بنویسیم! و همواره یکی از وظایف برنامه نویسان حرفه ای، انجام کارها با تعداد خطوط کمتر است.
برای روشن شدن کاربرد دستور switch سناریویی به شکل زیر تعریف می کنیم: فرض کنیم می خواهیم برنامه ای بنویسیم که در ابتدای برنامه از کاربر می خواهیم که عدد مربوط به ماهی که در آن متولد شده است را وارد کند. پس از آن که کاربر این کار را انجام داد، برنامه ای که ما طراحی کرده ایم نام ماه انتخابی را برای کاربر به نمایش در خواهد آورد (ممکن است برخی از برنامه نویسان مبتدی این سوال برایشان پیش آید که فایده نوشتن چنین برنامه ای چیست؟ در پاسخ به سوال فوق بایستی گفت که در موارد بسیاری به خصوص در ثبت نام های اینترنتی مثل ثبت نام آنلاین دانشگاه پیش می آید که از شما خواسته می شود تا یکسری فرم را پر نمایید. بخشی از این فرم مربوط به تاریخ تولد شما است که شما صرفاً اجازه دارید تا یکی از 12 ماه سال را انتخاب کنید و یا از شما خواسته می شود تا کد مربوط به شهر محل تولد خود را انتخاب نمایید. پس از پر کردن کلیه فضاهای خالی فرم، از شما خواسته می شود تا دکمه تایید را فشار دهید. پس از این کار، صفحه ای برای شما نمایش داده می شود که کلیه اطلاعات وارده توسط شما را پیش روی شما قرار می دهد تا در صورت تایید شما و فشردن دکمه تایید نهایی اطلاعات به سرور فرستاده شوند. در این صفحه دوم دیده می شود که در بخش تاریخ تولد به جای چاپ شماره ماه (مثلاً 12 )، نام ماه که اسفند می باشد نمایش داده می شود و یا به جای نشان دادن کد شهری که در آن متولد شده اید، نام آن شهر (مثلاً اراک) را برای شما نمایش دهد.)

اکنون پروژه جدیدی با نام SwitchIntro در محیط برنامه نویسی اکلیپس ایجاد کرده، کلاسی در آن تحت عنوان MySwitchClass یا هر نام دیگری می سازیم (به خاطر داشته باشیم که حرف اول نام کلاس می بایست با حرف بزرگ نوشته شود و اجازه نداریم تا از کاما و یا خط تیره و دیگر علائم در نام کلاس خود استفاده کنیم. البته استفاده از _ یا اصطلاحاً Underscore بلامانع است.) به خاطر داشته باشیم که در حین ساخت کلاس، گزینه public static void main را تیک بزنیم. پس از باز کردن فایل کلاسی که ایجاد کرده ایم، کلیه ی کامنت های پیش فرض را حذف کرده و کدی مشابه کد زیر خواهیم داشت:

public class MySwitchClass {
public static void main(String[] args) {

}
}
در این مرحله از کدنویسی، کلاسی تحت عنوان Scanner را وارد برنامه خود می کنیم. در واقع این کلاس امکان استفاده از کیبورد پی سی و یا لپ تاپ را به ما داده و اطلاعات ورودی از کیبورد را به برنامه ما ارسال می کند (جد.) کد تکمیل شده در این مرحله از کار به شکل زیر خواهد بود:

import java.util.Scanner;
public class MySwitchClass {
public static void main(String[] args) {
Scanner keyboardInput = new Scanner(System.in);
}
}
در این کد ما یک Instance یا به عبارتی یک "شیء" از کلاس Scanner را خواهیم ساخت. برای همین منظور، کلید واژه Scanner را نوشته و نامی برای آن انتخاب می کنیم. در اینجا نام keyboardInput به معنی "ورودی کیبورد" انتخاب شده است. توجه داشته باشید که نحوه نوشتن این نام به صورت camelCase می باشد.

پس از علامت = کلید واژه ی new را نوشته -توجه داشته باشید که حرف اول این واژه بایستی به صورت کوچک باشد- و مجدداً واژه ی Scanner را می نویسیم. در حقیقت با این کار ما یک Object یا شیء جدید از جنس کلاس Scanner که از قبل در API زبان برنامه نویسی جاوا طراحی شده است ایجاد می کنیم. داخل پرانتزی که مقابل واژه Scanner قرار دارد می نویسیم System.in به این معنی که ورودی سیستم -که همان کیبورد است- را هدف قرار دهد (توجه داشته باشید که واژه سیستم با حرف بزرگ نوشته شده است.) در این مرحله خواهید دید که محیط برنامه نویسی اکلیپس دور هر دو واژه Scanner نقطه چین قرار می دهد که به معنی وجود مشکلی در برنامه می باشد
 
  • پیشنهادات
  • *بانو بهار*

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2016/08/15
    ارسالی ها
    3,937
    امتیاز واکنش
    10,965
    امتیاز
    804
    محل سکونت
    میان شکوفه‌ها
    اولین پیشنهادی که اکلیپس به ما می دهد (Import ‘Scanner’ (java.util می باشد که دقیقا مد نظر ما هم همین پیشنهاد است. پس از انتخاب این گزینه با کلیک کردن بر روی آن، مشاهده می کنیم که ;import java.util.Scanner در بالای سورس کد ما ظاهر می شود. کاری که این خط از کد انجام می دهد این است که کلاس Scanner که قبلاً در API زبان برنامه نویسی جاوا ایجاد شده است را در کد ما فرا می خواند و از این پس ما خواهیم توانست در هر جای کد خود از این کلاس به سهولت استفاده کنیم (لازم به ذکر است که پس از استفاده ی مکرر از این کلاس، خواهیم دید که این خط از کد ملکه ی ذهن ما شده و خودمان هم به صورت دستی بدون نیاز به استفاده از گزینه Import می توانیم آن را در بخش فوقانی کد نوشته و مشکل را رفع کنیم.) به عنوان راه کار دیگر، می توان برای Import کردن این کلاس در برنامه خود، پس از نوشتن آن به طور هم زمان کلیدهای Ctrl+Shift+O را فشار دهیم.

    پس از این کار نیاز داریم تا جمله ای را در کنسول به نمایش در آوریم مبنی بر این که عدد ماه تولد خود را وارد نمایید. برای این منظور کد خود را به شکل زیر تکمیل می کنیم:

    import java.util.Scanner;
    public class MySwitchClass {
    public static void main(String[] args) {
    Scanner keyboardInput = new Scanner(System.in);
    System.out.print("Please enter the number of your birth month: ");
    }
    }
    جمله داخل پرانتز به معنی "لطفاً عدد ماه تولد خود را وارد نمایید:" می باشد. در این مرحله از کار، می توانیم پروژه خود را اجرا کنیم اما تنها خروجی برنامه نشان دادن همین جمله است که در بالا توضیح داده شد. حال یک متغیر از جنس int تحت عنوان monthNumber به معنی "شماره ماه" ایجاد می کنیم. هر متغیر نیاز به یک مقدار دارد که در این جا به طور مثال با قرار دادن یک علامت = و عددی همچون 12 می توان این مقدار را برای متغیر خود تعریف کرد. اما کاری که در اینجا می خواهیم انجام دهیم این است که مقدار متغیر خود را به صورت دینامیک وارد برنامه خود کنیم و به همین خاطر است که از کلاس Scanner استفاده می کنیم. برای این منظور کد خود را به شکل زیر تکمیل می کنیم:

    import java.util.Scanner;
    public class MySwitchClass {
    public static void main(String[] args) {
    Scanner keyboardInput = new Scanner(System.in);
    System.out.print("Please enter the number of your birth month: ");
    int monthNumber = keyboardInput.nextInt();
    }
    }
    در اینجا به جای آن که پس از علامت = یک عدد وارد نماییم، شیئ از کلاس Scanner تحت عنوان keyboardInput که در مرحله پیش ایجاد کردیم را فرا می خوانیم
     

    *بانو بهار*

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2016/08/15
    ارسالی ها
    3,937
    امتیاز واکنش
    10,965
    امتیاز
    804
    محل سکونت
    میان شکوفه‌ها
    این پنجره برای تکمیل کد تعدادی پیشنهاد مشاهده می شود که از میان آن ها متد ()nextInt مورد نیاز ما است چرا که متغیر ما از جنس int است. لازم به ذکر است که اگر زمانی نیاز داشتیم تا اعداد اعشاری را از طریق کیبورد وارد برنامه خود کنیم، پس از انتخاب متغیری از جنس double می بایست در این مرحله گزینه ی ()nextDouble را انتخاب کنیم.

    پس از کلیک کردن بر روی گزینه ی ()nextInt یک علامت ; در انتهای دستور خود قرار می دهیم تا آن را به پایان برسانیم. در این مرحله از آموزش، مطلب جدیدی که همان استفاده از switch است را توضیح خواهیم داد. در واقع ساختار switch همانند ساختار if است. به عبارت دیگر، به صورت ()switch سپس علامت های { } نوشته می شود که داخل پرانتز می بایست پارامتر ورودی که در اینجا همان شماره ماه است وارد شود و داخل دو علامت { }، می بایست دستورات شرطی قرار گیرند. برای ادامه کار، نام متغیر خود که همان monthNumber است را داخل پرانتز می نویسیم و کد خود را به شکل زیر تکمیل می کنیم:

    import java.util.Scanner;
    public class MySwitchClass {
    public static void main(String[] args) {
    Scanner keyboardInput = new Scanner(System.in);
    System.out.print("Please enter the number of your birth month: ");
    int monthNumber = keyboardInput.nextInt();
    switch(monthNumber){

    }
    }
    }
    مابین دو علامت { } قرار گرفته مقابل switch می بایست case ها و یا "مواردی" را تعریف کنیم که بر اساس آن، نام ماه انتخابی در مرحله قبل مشخص شده و سپس در کنسول نمایش داده شود. برای همین منظور کد خود را به شکل زیر تکمیل می کنیم:

    import java.util.Scanner;
    public class MySwitchClass {
    public static void main(String[] args) {
    Scanner keyboardInput = new Scanner(System.in);
    System.out.print("Please enter the number of your birth month: ");
    int monthNumber = keyboardInput.nextInt();
    switch (monthNumber) {
    case 1 :
    System.out.println("You were born in Farvardin.");
    break;
    }
    }
    }
    در واقع با تکمیل کد خود به این شکل به کامپیوتر دستور می دهیم که اگر مقدار ورودی از طریق کیبورد به متغیری از جنس int تحت عنوان monthNumber معادل با 1 بود، جمله ی .You were born in Farvardin به معنی "شما در ماه فروردین متولد شدید." نمایش داده شود. در این مرحله دستور ;break را توضیح نخواهیم داد چرا که در آموزش بعد به اهمیت آن بیشتر پی خواهیم برد (به خاطر داشته باشیم که پس از کلید واژه ی case می بایست علامت : قرار داد و پس از کلید واژه ی break علامت ; قرار داد.) با copy و paste کردن بخش جدید کد به تعداد یازده بار دیگر، دستورات شرطی را برای کلیه ماه های سال ایجاد می کنیم و آن ها را برای یازده ماه دیگر ویرایش می کنیم و در نهایت کد ما به شکل زیر در خواهد آمد:

    import java.util.Scanner;
    public class MySwitchClass {
    public static void main(String[] args) {
    Scanner keyboardInput = new Scanner(System.in);
    System.out.print("Please enter the number of your birth month: ");
    int monthNumber = keyboardInput.nextInt();
    switch (monthNumber) {
    case 1 :
    System.out.println("You were born in Farvardin.");
    break;
    case 2 :
    System.out.println("You were born in Ordibehesht.");
    break;
    case 3 :
    System.out.println("You were born in Khordad.");
    break;
    case 4 :
    System.out.println("You were born in Tir.");
    break;
    case 5 :
    System.out.println("You were born in Mordad.");
    break;
    case 6 :
    System.out.println("You were born in Shahrivar.");
    break;
    case 7 :
    System.out.println("You were born in Mehr.");
    break;
    case 8 :
    System.out.println("You were born in Aban.");
    break;
    case 9 :
    System.out.println("You were born in Azar.");
    break;
    case 10 :
    System.out.println("You were born in Day.");
    break;
    case 11 :
    System.out.println("You were born in Bahman.");
    break;
    case 12 :
    System.out.println("You were born in Esfand.");
    break;
    }
    }
    }
    اکنون می توانیم برنامه خود که تا نود درصد تکمیل شده است را اجرا کنیم
     

    برخی موضوعات مشابه

    بالا