پس از آشنایی با دستورات شرطی 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 نقطه چین قرار می دهد که به معنی وجود مشکلی در برنامه می باشد
به خاطر داشته باشید
فراموش نکنیم که با استفاده از دستورات 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 نقطه چین قرار می دهد که به معنی وجود مشکلی در برنامه می باشد