آشنایی با دستورات شرطی در ++C-جلسه سوم
دستورات شرطی در زبان ++C جهت درست یا نادرست بودن یک شرط استفاده می شود.در زبان سی پلاس پلاس می توان از دو ساختار شرطی استفاده نمود که در زیر اشاره شده است.
if
switch
دستور شرظی if
با استفاده از دستور شرطی if می توانیم شرط ها را از ابعاد گوناگون برسی کنیم.نکته مهمی که در هر دستور شرطی وجود دارد این می باشد که با درست بودن یک شرط دستورات داخل آن اجرا خواهند شد.در زیر نمایی از طریقه نوشتن دستور شرطی if نشان داده شده است.
1 2 3 4 5 6 7 8 |
if(شرط) { دستورات ; } |
در برنامه بالا در صورت درست بودن شرط دستورات داخل if اجرا خواهد شد.اگر تعداد دستورات نوشته شده در بدنه شرط if یک دستور باشد نیاز به استفاده از آکولاد باز و بسته نیست({}). در صورت نوشتن بیشتر از یک دستور حتما باید از آکولاد های باز و بسته استفاده نمود.در زیر یک مثال از نحوه استفاده از شرط if نوشته شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
char i=10; char j=0; char l=0; int main() { if(i==10) j=12; if(i<10) { l=5; j=6; } } |
استفاده از else
با استفاده از دستور else می توان در صورت درست نبودن شرط if دستورات نوشته شده در else را اجرا نمود.نوشته کلمه کلیدی else بعد از دستور شرطی if اجباری نیست و می توان آن حذف کرد.در برنامه زیر در صورت درست نبودن شرط داخل if دستور else اجرا خواهد شد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
char i=10; char j=0; int main() { if(i<10) { j=6; } else { j=20; } } |
استفاده از دستور else if
در ساختارهای تصمیم گیری چند گانه باید از دستورات if else استفاده نمود. با استفاده از این دستورات می توانیم در صورت درست بودن شرط if دستور else if را برسی کنیم و در صورت درست نبودن آن شرط های بعدی برسی خواهند شد.با استفاده از دستور شرطی if به صورت زیر هم می توانیم درست بودن یک شرط را برسی کنیم ولی در برنامه تمام if ها چک خواهند شد و این از سرعت برنامه کم خواهد کرد.
یکی از مزیت های استفاده از دستورات else if در این می باشد که در صورت درست بودن شرط در هر یک از دستورات else if برنامه به انتهای else if ها پرش می کند و دستورات else if زیرین را اجرا نخواهد کرد که این به سرعت برنامه اضافه خواهد کرد. در زیر یک مثال از این نوع ساختار آورده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
int number = 10; if(number == 1) { printf("Given number is 1\n"); } else if((number == 2) { printf("Given number is 2\n"); } else if((number ==3) { printf("Given number is 3\n"); } else if((number ==4) { printf("Given number is 4\n"); } else if((number ==5) { printf("Given number is 5\n"); } else { if(number<0) printf("Given number is negative\n"); else printf("Given number is greater than 5\n"); } |
در برنامه بالا در صورت درست بودن شرط در یکی از else if ها باعث پرش به دستورات بعد از else if خواهد شد و دیگر دستورات شرط زیرین برسی نخواهد شد.
دستور تصمیم گیری switch
از دستور تصمیم گیری switch برای برسی تنها درست بودن یک شرط استفاده می شود و نمی توان با آن برسی هایی از قبیل کوچکتر بودن یا بزرگتر بودن و غیره را انجام داد.درست بودن یک شرط با استفاده از دستور case برسی می شود. همچنین از کلمه کلیدی break جهت بیرون رفتن از switch استفاده می شود و در صورت نبودن آن تمام دستورات نوشته شده در switch بدون در نظر گرفتن شرط اجرا خواهد شد.در زیر ساختار switch آورده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
switch(متغییر) { case دستورات: شرط; break; . . . . . . default اجرای دستورات; } |
از کلمه کلیدی default جهت اجرای کدهای نوشته شده در آن در صورت درست نبودن شرط های case استفاده می شود. اگر هیچ کدام از شرطهای case درست نباشد به default رسیده و دستورات آن اجرا خواهد شد. نوشته default اجباری نیست و می توان آن را ننوشت. در زیر مثالی از switch case آورده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 |
int temp = 100; switch(temp) { case 10 : printf("10"); break; case 10 : printf("10"); // won't compile! break; case 100 :printf("1000"); break; default : printf("default"); break; } |
در زبان ++C می توان از متغییرهای نوع صحییح و همچنین از رشته ها به عنوان ورودی switch استفاده نمود و استفاده از اعداد اعشاری و یا آرایه ها مجاز نمی باشد.در زبان برنامه نویسی C تنها می توان از اعداد صحیح به عنوان ورودی استفاده نمود.