پس از آشنایی با نحوه به کارگیری متغیر char به همراه switch در این آموزش قصد داریم تا به بررسی این مطلب بپردازیم که چگونه می توان کلاس String را به همراه دستورات شرطی switch مورد استفاده قرار داد. همچون روال گذشته، قصد داریم تا به منظور درک بهتر مطالب آموزشی یک سناریو تعریف کنیم که در آن برنامه ای کاربردی از ادغام String و switch خواهیم نوشت.
با نگاهی به سایت با وب سایتی مواجه خواهیم شد که با تعیین نام کشورها، استان ها و همچنین شهرها پیش شماره کشور، استان و یا شهر مد نظر را به ما نشان می دهد. در این آموزش قصد داریم تا چنین پروژه ای را تعریف کنیم به این صورت که با نوشتن نام یکی از شهرهای ایران، نرم افزار پیش شماره تلفن آن شهر را به ما نشان دهد. به عبارت دیگر کاری که ما در این برنامه انجام خواهیم داد این است که داده ای از جنس string وارد برنامه می کنیم، سپس با استفاده از دستوراتی که از قبل در switch تعریف کرده ایم، نرم افزار پیش شماره آن شهر را به ما اعلام می کند.
نکته ای که پیش از شروع آموزش می بایست حتماً مد نظر قرار دهیم این است که به کاری گیری string ها در switch در نسخه 7 جاوا امکان پذیر شده است. بنابراین ما برای طراحی این نرم افزار نیاز داریم تا از قبل نسخه JDK 7 را نصب کرده باشیم. برای این که اطمینان حاصل کنیم که نسخه 7 جاوا روی سیستم ما نصب است، به کنترل پنل رجوع کرده و روی آیکان Java کلیک می کنیم. سپس پنجره ای همچون پنجره زیر نمایان خواهد شد:
در پنجره فوق روی دکمه About کلیک نموده سپس پنجره بعدی به شکل زیر ظاهر می شود:
در این پنجره به وضوح نسخه جاوا نصب شده روی سیستم مشخص می باشد. حال که از نصب نسخه جاوا 7 روی سیستم مطمئن شدیم نوبت به تنظیم محیط برنامه نویسی اکلیپس برای استفاده از جاوا 7 می رسد. در واقع ما می توانیم به طور هم زمان چندین نسخه جاوا را روی سیستم خود داشته باشیم فقط نکته ای که نمی بایست فراموش کنیم این است که به اکلیپس دستور دهیم از کدام نسخه استفاده کند (به منظور دستور دادن به محیط برنامه نویسی اکلیپس برای استفاده از نسخه ی خاصی از JDK به بخش آموزشی مراجعه نمایید.) ایجاد یک پروژه برای این آموزش با ایجاد پروژه برای آموزش های پیشین کمی متفاوت است. در واقع همان طور که در تصویر زیر قابل مشاهده است، در پنجره ای که برای ساخت یک پروژه جدید جاوا باز می شود می بایست از میان نسخه های JRE موجود نسخه 7 را انتخاب کنیم:
پس از انتخاب نامی به عنوان نام پروژه خود دکمه Finish را زده و سپس همان طور که قبلاً آموزش داده شده است یک کلاس جدید تحت عنوان CityCode به معنی "کد شهر" در آن ایجاد می کنیم. برای آن که بتوانیم به صورت دینامیک مقادیر string را وارد کنیم می بایست از کلاس Scanner استفاده نماییم. حال کد نیمه تکمیل ما به شکل زیر خواهد بود:
import java.util.Scanner;
public class CityCode {
public static void main(String[] args) {
Scanner keyboardInput = new Scanner(System.in);
String cityName = keyboardInput.next();
}
}
در کد فوق ما یک Instance یا "نمونه" از کلاس Scanner ایجاد کرده و نام آن را keyboardInput به معنی "ورودی کیبورد" گذاشته ایم. سپس یک شیء از روی کلاس String ایجاد کرده و نام آن را cityName به معنی "نام شهر" می گذاریم. در این مرحله به جای آن که مقداری برای کلاس String تعریف کنیم، دستور می دهیم تا با استفاده از کلاس Scanner هر آنچه که از طریق کیبورد وارد برنامه شد به شیء ساخته شده از روی کلاس String ما اختصاص یابد. در واقع متد ()next این وظیفه را دارا است تا ورودی هایی از هر جنس را از کیبورد دریافت کند. سپس نیاز است تا switch را به شکلی تعریف کنیم که مقدار شیء ساخته شده از روی کلاس String را گرفته و بر اساس آن نام شهر مرتبط را روی صفحه نمایش نشان دهد. برای این منظور کد فوق را به شکل زیر تکمیل می کنیم:
import java.util.Scanner;
public class CityCode {
public static void main(String[] args) {
System.out.print("Please Type the Name of the City ");
Scanner keyboardInput = new Scanner(System.in);
String cityName = keyboardInput.next();
switch (cityName) {
case "mashhad" :
System.out.println("Mashhad Code Is 0511");
break;
case "arak" :
System.out.println("Arak Code Is 0861");
break;
case "abadan" :
System.out.println("Abadan Code Is 0631");
break;
case "tehran" :
System.out.println("Tehran Code Is 021");
break;
case "amol" :
System.out.println("Amol Code Is 0121");
break;
case "chabahar" :
System.out.println("Chabahar Code Is 0545");
break;
case "sanandaj" :
System.out.println("Sanandaj Code Is 0871");
break;
default :
System.out.println("Sorry, This City Is Not Defined!");
break;
}
}
}
در حقیقت از آنجا که می خواهیم دستور switch مقدار شیء ساخته شده از روی کلاس String را مورد سنجش قرار دهد، می بایست داخل پرانتز مقابل switch نام شیئ که از روی کلاس String ساختیم یا همان cityName را وارد کنیم. اکنون به منظور روشن تر شدن کد فوق به طور نمونه یکی از case ها را مورد بررسی قرار می دهیم. اولین گزینه که :"case "mashhad نام دارد حاکی از این شرط است که ببیند آیا مقدار داده ورودی از طریق کیبورد معادل با واژه ی mashhad است یا خیر، چنانچه پاسخ به این شرط true بود سپس دستور ;("System.out.println("Mashhad Code Is 0511 مبنی بر نوشتن جمله Mashhad Code Is 0511 به معنی "کد مشهد 0511 است" اجرا خواهد شد و در نهایت به دستور break می رسد که بدان معنا است که از برنامه خارج شود. حال اگر داده ورودی معادل با این شرط نبود، شروط قرار گرفته در این switch یکی پس از دیگری اجرا می شوند و چنانچه هیچ کدام از case ها معادل با داده ورودی نبود، دستور default اجرا خواهد شد.
با نگاهی به سایت با وب سایتی مواجه خواهیم شد که با تعیین نام کشورها، استان ها و همچنین شهرها پیش شماره کشور، استان و یا شهر مد نظر را به ما نشان می دهد. در این آموزش قصد داریم تا چنین پروژه ای را تعریف کنیم به این صورت که با نوشتن نام یکی از شهرهای ایران، نرم افزار پیش شماره تلفن آن شهر را به ما نشان دهد. به عبارت دیگر کاری که ما در این برنامه انجام خواهیم داد این است که داده ای از جنس string وارد برنامه می کنیم، سپس با استفاده از دستوراتی که از قبل در switch تعریف کرده ایم، نرم افزار پیش شماره آن شهر را به ما اعلام می کند.
نکته ای که پیش از شروع آموزش می بایست حتماً مد نظر قرار دهیم این است که به کاری گیری string ها در switch در نسخه 7 جاوا امکان پذیر شده است. بنابراین ما برای طراحی این نرم افزار نیاز داریم تا از قبل نسخه JDK 7 را نصب کرده باشیم. برای این که اطمینان حاصل کنیم که نسخه 7 جاوا روی سیستم ما نصب است، به کنترل پنل رجوع کرده و روی آیکان Java کلیک می کنیم. سپس پنجره ای همچون پنجره زیر نمایان خواهد شد:
در پنجره فوق روی دکمه About کلیک نموده سپس پنجره بعدی به شکل زیر ظاهر می شود:
در این پنجره به وضوح نسخه جاوا نصب شده روی سیستم مشخص می باشد. حال که از نصب نسخه جاوا 7 روی سیستم مطمئن شدیم نوبت به تنظیم محیط برنامه نویسی اکلیپس برای استفاده از جاوا 7 می رسد. در واقع ما می توانیم به طور هم زمان چندین نسخه جاوا را روی سیستم خود داشته باشیم فقط نکته ای که نمی بایست فراموش کنیم این است که به اکلیپس دستور دهیم از کدام نسخه استفاده کند (به منظور دستور دادن به محیط برنامه نویسی اکلیپس برای استفاده از نسخه ی خاصی از JDK به بخش آموزشی مراجعه نمایید.) ایجاد یک پروژه برای این آموزش با ایجاد پروژه برای آموزش های پیشین کمی متفاوت است. در واقع همان طور که در تصویر زیر قابل مشاهده است، در پنجره ای که برای ساخت یک پروژه جدید جاوا باز می شود می بایست از میان نسخه های JRE موجود نسخه 7 را انتخاب کنیم:
پس از انتخاب نامی به عنوان نام پروژه خود دکمه Finish را زده و سپس همان طور که قبلاً آموزش داده شده است یک کلاس جدید تحت عنوان CityCode به معنی "کد شهر" در آن ایجاد می کنیم. برای آن که بتوانیم به صورت دینامیک مقادیر string را وارد کنیم می بایست از کلاس Scanner استفاده نماییم. حال کد نیمه تکمیل ما به شکل زیر خواهد بود:
import java.util.Scanner;
public class CityCode {
public static void main(String[] args) {
Scanner keyboardInput = new Scanner(System.in);
String cityName = keyboardInput.next();
}
}
در کد فوق ما یک Instance یا "نمونه" از کلاس Scanner ایجاد کرده و نام آن را keyboardInput به معنی "ورودی کیبورد" گذاشته ایم. سپس یک شیء از روی کلاس String ایجاد کرده و نام آن را cityName به معنی "نام شهر" می گذاریم. در این مرحله به جای آن که مقداری برای کلاس String تعریف کنیم، دستور می دهیم تا با استفاده از کلاس Scanner هر آنچه که از طریق کیبورد وارد برنامه شد به شیء ساخته شده از روی کلاس String ما اختصاص یابد. در واقع متد ()next این وظیفه را دارا است تا ورودی هایی از هر جنس را از کیبورد دریافت کند. سپس نیاز است تا switch را به شکلی تعریف کنیم که مقدار شیء ساخته شده از روی کلاس String را گرفته و بر اساس آن نام شهر مرتبط را روی صفحه نمایش نشان دهد. برای این منظور کد فوق را به شکل زیر تکمیل می کنیم:
import java.util.Scanner;
public class CityCode {
public static void main(String[] args) {
System.out.print("Please Type the Name of the City ");
Scanner keyboardInput = new Scanner(System.in);
String cityName = keyboardInput.next();
switch (cityName) {
case "mashhad" :
System.out.println("Mashhad Code Is 0511");
break;
case "arak" :
System.out.println("Arak Code Is 0861");
break;
case "abadan" :
System.out.println("Abadan Code Is 0631");
break;
case "tehran" :
System.out.println("Tehran Code Is 021");
break;
case "amol" :
System.out.println("Amol Code Is 0121");
break;
case "chabahar" :
System.out.println("Chabahar Code Is 0545");
break;
case "sanandaj" :
System.out.println("Sanandaj Code Is 0871");
break;
default :
System.out.println("Sorry, This City Is Not Defined!");
break;
}
}
}
در حقیقت از آنجا که می خواهیم دستور switch مقدار شیء ساخته شده از روی کلاس String را مورد سنجش قرار دهد، می بایست داخل پرانتز مقابل switch نام شیئ که از روی کلاس String ساختیم یا همان cityName را وارد کنیم. اکنون به منظور روشن تر شدن کد فوق به طور نمونه یکی از case ها را مورد بررسی قرار می دهیم. اولین گزینه که :"case "mashhad نام دارد حاکی از این شرط است که ببیند آیا مقدار داده ورودی از طریق کیبورد معادل با واژه ی mashhad است یا خیر، چنانچه پاسخ به این شرط true بود سپس دستور ;("System.out.println("Mashhad Code Is 0511 مبنی بر نوشتن جمله Mashhad Code Is 0511 به معنی "کد مشهد 0511 است" اجرا خواهد شد و در نهایت به دستور break می رسد که بدان معنا است که از برنامه خارج شود. حال اگر داده ورودی معادل با این شرط نبود، شروط قرار گرفته در این switch یکی پس از دیگری اجرا می شوند و چنانچه هیچ کدام از case ها معادل با داده ورودی نبود، دستور default اجرا خواهد شد.