دستورات کنترلی If ، else-if و switch-case در زبان ++C


دستورات کنترلی If ، else-if و switch-case در زبان ++C
برای خرید این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

آموزش دستورات کنترلی else-if ،if و switch-case در زبان ++C:


در این جلسه، می خواهیم دستورات کنترلی else-if، if و switch-case در زبان ++C، که یک مبحث بسیار کاربردی در زبان های برنامه نویسی می باشد را بررسی کنیم. در جلسه قبل یاد گرفتیم که چگونه یک برنامه ایجاد کنیم، در برنامه داده هایی از کاربر دریافت کنیم و اطلاعات را در خروجی چاپ کنیم. در این آموزش یاد می گیریم چگونه خطوطی از یک برنامه اجرا نشوند و یا چندین بار اجرا شوند.


دستورات کنترلی در ++C:

  • دستورات if و else-if در زبان ++C
  • دستور switch-case در زبان ++C

 

شکل کلی دستور if:

if (شرط)
}

دستورات برنامه     

{


 

مثال: در این برنامه یک عدد دورقمی از کاربر دریافت می کنیم و مجموع ارقام آن را در خروجی چاپ می کند. با استفاده از دستور if برنامه را کنترل می کنیم که کاربر عدد دو رقمی وارد کند.

int  num , a , b , sum;
cout<<”enter number :”;
cin>>num;
if ( 9 < num    &&   num < 100 )
  {
       a=num % 10;
       b=num / 10;
       sum= a +b ;
       cout<< “Sum is :”<<sum;
}  

  

 
خروجی:

خروجی کد


else:
با استفاده از دستور else، زمانی که شرط if درست نباشد می توانیم دستورات دیگری را اجرا کنیم. در مثال بالا اگر کاربر عدد سه رقمی وارد کند دیگر شرط درست نمی باشد و دستورات آن اجرا نمی شود، اما با دستور else می توانیم به کاربر یک پیغام خطا بدهیم. else به معنای در غیر این صورت است.

 

if (شرط)
}

دستورات برنامه     
{
else
  {
       دستورات برنامه      
   }

 


مثال: مثال قبل با دستور else، اگر شرط درست نباشد یعنی کاربر عدد دو رقمی وارد نکرده باشد، دستورات if اجرا نمی شود و دستورات قسمت  else اجرا می شوند و پیغام Error را در خروجی چاپ می کند.

int  num , a , b , sum;
cout<<”Enter number :”;
cin>>num;
if ( 9 < num    &&   num < 100 )
  {
       a=num % 10;
       b=num / 10;
       sum= a +b ;
       cout<< “sum is :”<<sum;
}     

 else
{
   Cout<< ”Error”;
}

 


مثال: در این مثال دو عدد از کاربر دریافت می کنیم و عملیات جمع، تفریق، ضرب و تقسیم را انجام می دهیم و در خروجی چاپ می کنیم.


نکته 1: متغیری که حاصل تقسیم در آن قرار می گیرد و می خواهیم با دقت اعشاری حساب کند، آن را از نوع داده float یا double تعریف می کنیم.
نکته 2: زمانی که دو عدد صحیح را تقسیم می کنیم، جواب حتما یک عدد صحیح می باشد، حتی اگر متغیری که جواب را در آن قرار می دهیم از نوع اعشاری باشد. برای اینکه حاصل تقسیم دقیق باشد صورت یا مخرج و یا هر دو باید از نوع اعشاری باشند.
در این مثال متغیر num1 از نوع عدد صحیح (int) می باشد برای اینکه نتیجه تقسیم یک عدد دقیق باشد، متغیر num1 که صورت تقسیم است را به صورت لحظه ایی نوع آن را به float تغییر می دهیم، به این صورت div= (float); مثل num1 / num 2 نوع داده float را قبل از متغیر قرار می دهیم.

نکته 3: در ریاضی نمی توانیم عددی را بر 0 تقسیم کنیم. در این مثال با دستور if شرطی قرار می دهیم که اگر مخرج 0 نبود، تقسیم را انجام دهد در غیر این صورت پیغام Error را که در قسمت else قرار داده ایم در خروجی چاپ می شود.

 

int num1,num2,sum,sub,mul;
float div;
cout << “enter number :”;
cin>> num1;
cout<< “enter number :”;
cin>>num2;

sum= num1 + num 2;
sub= num1 - num 2;
mul= num1 * num 2;
cout<<”Sum is :”<<sum<<endl;
cout<<”Sub is :”<<sub<<endl;
cout<<”Mul is :”<<sum<<endl;
if (num2 != 0)
  {
       div= (float) num1 / num 2;
       cout<<”Div is :”<<div<<endl;   
}        
else   
        {
            Cout<<”Error…”
        }
     

 

خروجی:

 

خروجی1

 

خروجی 2
 

 

شکل کلی دستور else-if:
اگر در برنامه بخواهیم در شرایط مختلف دستورات خاصی را اجرا کنیم از دستور else-if به صورت زیر استفاده می کنیم:

 

if (شرط1 )
}

دستورات برنامه     
{
else  if (شرط2)
}

دستورات برنامه     
{
 else  if (شرط3)
  {
       دستورات برنامه      
   }
....   
else
  {
       دستورات برنامه      
   }


 
 

مثال: در این مثال می خواهیم یک عدد را به عنوان معدل از کاربر دریافت کنیم، اگر عدد بین 0 تا 11  باشد zaif را در خروجی چاپ کند و اگر عدد بین 12تا  15 باشد مقدار motavaset  و اگر بین 16 تا 20 باشد Alie را چاپ کند و اگر عدد وارد شده خارج از محدوده این سه شرط باشد پیغام Error را چاپ کند.

float avg;
cout<<”Enter Average :”;
cin>>avg;
if ( 0<=avg && avg<12 )
{
    cout<<”Zaif”;
}
else if ( 12<=avg && avg<16 )
{
    cout<<”Motavaset”;
}

else if ( 16<=avg && avg<20 )
{
    cout<<”Alie”;
}
else
{
    cout<<”Error”;
}

 

خروجی:
 

 

خروجی 1

خروجی 2

خروجی 3

خروجی 4
 

 

شکل کلی دستور switch-case:
در پرانتز جلوی switch نام متغیری را می نویسیم که بر اساس مقادیر آن قرار است دستوراتی اجرا شوند و براساس مقادیر این متغیر دستورات case ها را می نویسیم. اگر محتوای متغیر با مقادیر هریک از case ها برابر باشد دستورات مربوط به آن case اجرا می شوند و اگر با هیچ یک از caseها برابر نباشد دستورات قسمت default اجرا می شود. default مانند else در دستور if عمل می کند.


نکته 1: جلوی case ها نمی توان متغیر قرار داد و تنها باید از یک مقدار ثابت استفاده شود.
نکته 2: مقادیر case ها نباید باهم برابر باشند.
نکته 3: جلوی case ها نمی توان از چند مقدار استفاده کرد و اگر دریک برنامه نیاز باشد به ازای چند مقدار دستورات یکسانی اجرا شود به این صورت case ها را می نویسیم:

به عنوان مثال می خواهیم به ازای مقادیر 8، 2 و 4، No در خروجی چاپ شود.

case 8:
case 2:
case 4:
        cout<<”No”;
         breack;

 


break باعث شکسته شدن حلقه برنامه می شود. یعنی اگر دستورات مربوط به یک case اجرا شود برنامه تمام می شود و دستورات دیگر اجرا نمی شوند.

switch (نام متغیر)        
 }    
            case مقدار اول :
                                    دستورات برنامه
                                     break;
             case مقدار دوم :
                                    دستورات برنامه
                                      break;
              case مقدار سوم :
                                    دستورات برنامه
                                       break;
                 …..
                default :
                                    دستورات برنامه
    }

 

 

مثال: در این برنامه یک عدد از ورودی دریافت می کنیم، اگر عدد وارد شده برابر با هریک از مقادیر case ها باشد دستورات مربوط به آن اجرا می شود. مثلا اگر عدد وارد شده 3 باشد Darsman را در خروجی چاپ می کند.

int num;
cout<<” Enter number : ”;
cin>>num;
switch (num)
 {
        case 1 :
                     cout<<”Ali”;
                     break;
         case 5 :
                     cout<<”*****”;
                     break;
         case 3 :
                     cout<<”Darsman”;
                     break;
             case 20 :
                     cout<<”Yes”;
                     break;
             default :
                      cout<<”Error”;
  }


 

دوست درسمنی عزیز، امیدواریم از این آموزش رایگان لذت برده باشید. برای یادگیری این مبحث می توانید این درس را دانلود کنید و از فایل ها و ویدئو این بخش استفاده کنید. شما عزیزان می توانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزش هایمان یاری کنید.
 

با امید موفقیت و شادی برای شما دوست درسمنی عزیزsmiley

انجمن ++C کاران درسمن


نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 11 جلسه
مدت زمان 300 دقیقه
حجم دوره 2/10 گیگابایت
سطح مهارت مقدماتی تا متوسط
وضعیت دوره پایان یافته
تعداد دانشجویان 215
: میانگین امتیاز دوره

رایگان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی
مهدی عباسی

درباره مدرس :

مدیر‌ عامل‌ شرکت آریا‌ نرم‌‌ افزار دارنده مدرک کارشناسی‌ ارشد مهندسی کامپیوتر 12‌ سال سابقه تدریس دروس کامپیوتر را در دانشگاههای دولتی، آزاد، پیام‌نور ملایر، شهیدشمسی‌پور تهران و تدریس برنامه‌نویسی در ... ر انیستیتو ایزایران، مجتمع فنی و موسسه راه‌آینده تهران دارا میباشد و تا به حال راهنمایی انجمنهای علمی دانشگاه و صدها پروژه دانشجویی را برعهده داشته است. تخصص اصلی: با داشتن گواهی‌نامه‌های معتبر تدریس از انیستیتو‌ ایزایران، راه آینده‌تهران و سازمان‌فنی‌حرفه‌ای، تدریس و آموزش‌ دروس کامپیوتر، ‌برنامه‌نویسی کامپیوتر و کلاسهای کنکور کارشناسی و کارشناسی‌ارشد میباشد.همچنین تجربه داوری و نظارت مسابقات برنامه‌نویسی کشوری‌ACM را در سالهای متعدد داشته و تیم مورد رهبری ایشان در 3سال متوالی مقام اول مسابقات کشوری را از آن خود کرده است.ایشان مقالاتی در زمینه شبکه‌های کامپیوتری، تکنیک‌های وزارت دفاع و ... به ثبت رسانده و مشاور و کارشناس در طراحی و برنامه نویسی بیش از 50‌برنامه کاربردی تحت وب و ویندوز و موبایل میباشد. افتخارات دیگر:کسب مقام دوم ایده‌های برتر در مسابقات استارت‌آپ و بکند کشوری را نام برد.بیشتر بدانید