نحوه ی استفاده از دستور بریک در سوییچ


نحوه ی استفاده از دستور بریک در سوییچ


در این قسمت از آموزش نیاز است تا عملکرد دستور ;breakرا توضیح دهیم. برای شروع کار پروژه ای که در جلسه ی قبل ایجاد کردیم را باز می کنیم. در این مرحله کد ما می بایست به شکل زیر باشد:

import java.util.Scanner;  public class BreakStatement {      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;          }      }  }  

در واقع پس از وارد کردن عددی در بخش کنسول و زدن دکمه اینتر، این داده ی ورودی وارد برنامه می شود و از طریق کلاس Scanner در متغیر int که ایجاد کردیم و نام آن را monthNumber گذاشتیم ذخیره می شود. سپس متغیر خود را در دستور switch فرا می خوانیم. در اولین فاز، دستور switch می سنجد که ببیند آیا داده متغیرش معادل با case 1 می باشد یا خیر. چنانچه معادل با عدد یک بود در این مرحله شرط موجود در case 1 که دستور ;(“.System.out.println(“You were born in Farvardin می باشد را اجرا می کند. به محض این که این دستور انجام شد، دستور break به برنامه می گوید که دیگر نیازی به اجرای دستورات بعدی نبوده و بلافاصله می بایست برود به آخر برنامه و از داخل دستور شرطی سوئیچ خارج شود.

حال فرض کنیم که عدد ورودی 7 است. در این صورت برنامه اول به سراغ اولین شرط می رود و مشاهده می کند که عدد 7 با case 1 مطابقت ندارد پس دستور break از برنامه می خواهد که به سراغ دومین شرط برود و باز هم می بیند که نیازش برآورده نمی شود و این کار آنقدر تکرار می شود تا به مورد هفتم می رسد. در این مرحله برنامه می بیند که تطبیق صورت گرفت پس دستور break برنامه ما را وادار می سازد تا مابقی شروط را نادیده گرفته و مستقیماً به آخر برنامه برود.

نکته
چیزی که در اینجا باید یادآور شویم این است که مقادیر ورودی به ترتیب با اولین مقدار case مقایسه می شوند و اگر برابر نبود به سراغ مقدار بعدی case می رود و اگر برابر بود وارد دستورات case می شود. دستور break هم برای این است که وقتی نتیجه دلخواه برآورده شد از دستور case خارج شود و دیگر به سراغ مقادیر بعدی case نرود. توجه داشته باشیم که در هر بخش مقایسه حتما باید از دستور break استفاده کنیم که به محض برقراری یک شرط و اجرای دستورات مربوط به آن، دستور break مربوطه اجرا گردیده تا از انجام دیگر مقایسه ها جلوگیری شود.

اکنون ببینیم که اگر دستورات break را نداشته باشیم چه اتفاقی خواهد افتاد! برای همین منظور، می توانیم یا کلیه دستورات break را به صورت کامنت در آوریم و یا از برنامه حذف کنیم که در اینجا مورد اول منطقی تر به نظر می رسد که در این صورت کد ما به شکل زیر در خواهد آمد:

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;          }      }  }  

همان طور که در آموزش های پیشین توضیح داده شد برای کامنت کردن بخشی از کد می توان نشانگر موس را روی خط مد نظر قرار دادن و دکمه Ctrl را به همراه علامت / فشار می دهیم. در این مرحله مجدداً برنامه را اجرا می کنیم و عددی دلخواه را از میان 1 تا 12 وارد می سازیم و نتیجه ای عجیب مشابه تصویر زیر خواهیم دید:

در واقع بدون حضور دستورات break برنامه هیچ مانعی بر سر راه خود برای اجرای کلیه دستورات نخواهد دید و آن ها را یکی پس از دیگری اجرا خواهد کرد مگر آنکه عدد 12 وارد شود. در حقیقت از آنجا که پس از case 12 دستور دیگری وجود ندارد برنامه ما فقط و فقط همان دستور را به نمایش در خواهد آورد و یا اگر عدد ورودی ما 10 باشد، برنامه مستقیماً به سراغ case 10 می رود و پس از اجرای آن و کلیه دستورات پس از آن که case 11 و case 12 می باشند به اتمام خواهد رسید و نتیجه ای مشابه تصویر زیر ارائه خواهد کرد:

حال که با اهمیت دستور break آشنا شدیم می توانیم مجدداً با قرار دادن نشانگر موس خود روی خطوطی که این دستور در آن نوشته شده و فشردن هم زمان کلید های Ctrl و علامت / آن ها را از حالت کامنت بیرون در آوریم.

نکته پایانی این قسمت از آموزش به بررسی این نکته می پردازد که زمان هایی ممکن است اتفاق افتد که کاربر به طور اشتباه عددی به غیر از 1 تا 12 را وارد می سازد مثلاً عدد 13 که در این صورت پس از اجرای برنامه خروجی زیر را خواهیم دید:

در حقیقت از آنجا که هیچ گونه شرطی برای ورودی هایی به غیر از 1 تا 12 تعریف نکرده ایم، برنامه ما چیزی برای ارائه کردن در دست ندارد. برای رفع این مشکل می بایست از دستور default استفاده کنیم. در واقع این دستور حاکی از آن است که هر آنچه که به غیر از شروط case 1 تا case 12 وارد برنامه شد، می بایست شرط default اجرا شود. با دانستن این نکته، به تکمیل کد خود می پردازیم تا به برنامه دستور دهیم که اگر کاربر عددی به غیر از 1 تا 12 انتخاب کرد، جمله ی !You made a mistake boy را به معنی “پسر اشتباه کردی!” را نمایش دهد. برای همین منظور کد خود را به شکل زیر تکمیل می کنیم:

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;              default:              System.out.println("You made a mistake boy!");              break;          }      }  }  

پس از اجرای برنامه و وارد کردن عددی به غیر از اعداد 1 تا 12 برنامه ما به درستی کار کرده و به ما اخطار خواهد داد:

در پایان این قسمت از آموزش به برنامه نویسان مبتدی پیشنهاد می شود تا حد ممکن از Copy کردن کدها از داخل آموزش خودداری نموده و سعی کنند خود کد ها را در محیط اکلیپس بنویسند چرا که با این کار هم می توانند مهارت سریع تایپ کردن خود را بهبود بخشیده و در ضمن راحت تر خواهند توانست به منطق پشت هر خط از کد پی ببرند زیرا در حین کدنویسی حتماً می بایست در مورد کاری که انجام می دهیم فکر کنیم که در غیر این صورت ممکن است بیشتر مرتکب اشتباه شویم. در آموزش قسمت بعد با نحوه به کار گیری متغیر char در دستور switch در قالب پروژه خرید آنلاین آشنا خواهیم شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *