در کامپیوتر تصمیم گیری به صورت “بله” یا “خیر” انجام می شود، این مطلب به منطق ۰ و ۱ معروف است به این معنی که در کامپیوتر یک گزاره یا درست است یا غلط و چیزی به عنوان احتمالات وجود ندارد.
هنگامی که از یک برنامه می خواهیم تصمیماتی را برای ما بگیرد ابتدا باید مجموعه جواب های ممکن را برای آن برنامه ایجاد کنیم. به عنوان مثال می خواهیم برنامه ای بنویسیم که مشخص کند آیا مقدار یک متغیر ۶۵ هست یا نه؟ جواب های که برنامه به ما می دهد می تواند فقط بله یا خیر باشد یا اینکه می توان گزینه های دیگری را به مجموعه جواب اضافه کرد مثل “بزرگتر” ، ” مساوی” و “کوچکتر”. در ادامه برنامه ای برای حالت دوم می نویسیم.
اما چه طور برنامه این تصمیمات را می گیرد ؟ برای این کار یک سری سوالات بله یا خیر پرسیده میشود. مثلا ابتدا می پرسیم آیا متغیر از ۶۵ “بزرگتر” است؟ اگر جواب برنامه بله باشد احتیاجی به پرسیدن ادامه سوالات نیست. اما اگر پاسخ خیر باشد ، سوال بعدی پرسیده می شود یعنی آیا متغیر “برابر” با ۶۵ است؟ اگر این طور باشد پاسخ بله به کاربر داده می شود و در غیر این صورت به کاربر اطلاع داده می شود که متغیر از ۶۵ کمتر است.
برای پرسیدن این سوالات از برنامه چند راه وجود دارد که یکی از آنها استفاده ازدستور if است :
<?php if ($x > 65) { echo "x is larger than 65"; } else if ($x == 65) { echo "x is equal to 65"; } else { echo "x is smaller than 65"; } ?>
در کد بالا ابتدا شرط اول چک می شود، در صورت درست بودن شرط، دستور درون {} اجرا می شود که در اینجا دستور echo است. در این حالت دستورات else بعدی دیگر اجرا نمی شوند. اما اگر شرط اول درست نباشد برنامه به سراغ if بعدی می رود و در صورت درست بودن شرط، دستور مربوط به آن را اجرا می کند و این روند به همین ترتیب ادامه خواهد داشت.
اگر فقط دو گزینه برای جواب ها داشته باشیم دستور else if می تواند حذف شود و فقط از یک if و else استفاده شود. یا اینکه می توان فقط از یک if استفاده کرد به این صورت که اگر شرطی درست بود دستور اجرا شود و اگر درست نبود هیچ کار خاصی انجام نشود.
در ادامه برنامه قبل را دوباره اجرا می کنیم اما این بار به وسیله دستور switch-case :
<?php switch ($x) { case $x > 65: echo "x is larger than 65"; break; case $x == 65: echo "x is equal to 65"; break; default: echo "x is smaller than 65"; } ?>
دستور switch کاملا شبیه به دستور if اجرا می شود. در اینجا به جای if و else های تو در تو از case استفاده می شود. در صورتی که هر کدام از case ها درست باشد دستور break اجرا می شود تا برنامه ادامه کد را اجرا نکند و در آخر اگر هیچ کدام از case ها درست نبود default اجرا می شود.
برای زمانی که مجموعه جواب ما بزرگ است و نمی خواهیم از تعداد زیادی if تو در تو استفاده کنیم، switch بهترین راه حل است.
مارا در توئیتر دنبال کنید
خبرمایه ما در بیاید