ساختارهای تکرار،امکانات خوبی برای تکرار اجرای مجموعه ای از دستورات برنامه
می باشند . اما اگر بخواهیم تحت شرایطی که در برنامه اتفاق می افتد تصمیم گیری
لازم را داشته باشیم بطوری که تحت شرایطی ، مجموعه ای از دستورات اجرا شوند و
مجموعه ای دیگر از دستورات اجرا نشده وکنترل اجرای برنامه بجای دیگر منتقل شود
به ابزار دیگری بنام ساختارهای تصمیم نیاز داریم . این ساختارها در زبان های
برنامه سازی مختلف به اشکال متفاوتی وجود دارند که انواع مختلف آن را در زبان C
بررسی می کنیم .
ساختار تصمیم if
ساختار if ( که ساختار انتقال کنترل شرطی نیز نامگذاری میشود ) موجب میگردد
تا تحت شرایطی ، مجموعه ای از دستورات اجرا شده و یااز اجرای این مجموعه دستورات
صرفنظر گردد . این ساختار بصورت های زیر مورد استفاده قرار می گیرد .
(َ1) ;دستور (شرط) if
(َ2) (شرط) if {
مجموعه دستورات 1 }
else
{
مجموعه دستورات 2 }
در روش (1) ، شرط ذکر شده بررسی می شود و در صورت برقرار بودن ، دستور بعد
از آن اجرا می شود و در غیر اینصورت کنترل اجرای برنامه به دستور بعد از if
منتقل می گردد .
در روش (2) ، شرط ذکر شده بررسی می شود و در صورت برقرار بودن ، مجموعه
دستورات (1) اجرا میشوند و در غیر اینصورت مجموعه دستورات (2) اجرا خواهند شد.
لازم به ذکر است که وجود else در ساختار if اختیاری است . یعنی ساختار if را
بصورت زیر نیز می توان بکار برد :
(شرط) if {
مجموعه دستورات }
در روش فوق پس از این که کنترل اجرای برنامه به if رسید شرط مورد نظر بررسی
می شود . چنانچه این شرط برقرار باشد ، مجموعه دستورات داخل {و }و ( که یک بلاک
نامیده می شود ) اجرا می گردد وگرنه کنترل اجرای برنامه به اولین دستور بعد از
بلاک if منتقل خواهد شد . استفاده از ساختار if بصورت لانه ای ( تو در تو ) نیز
امکان پذیر است که در اینصورت اولین else به آخرین if بر می گردد .
مثال 1: برنامه ای که با خواندن یک جمله از ورودی ، تعداد کاراکترها و کلمات
موجود در جمله را محاسبه می کند . کلمات با فاصله (blank) از یکدیگر جدا شده و
انتهای جمله به کلید enter ختم می گردد . main)(