انواع حلقه ها در ++C را می‌توان به سه دسته کلی تقسیم کرد. این دسته‌ها شامل حلقه‌های «for» و «while» و «do while» هستند. بعضی وقت‌ها در برنامه نویسی باید وظیفه خاصی را چندبار پشت سر هم اجرا کنیم. اما همه کدها را نمی‌توان به صورت تکراری نوشت. زیرا شاید بخواهیم کد خاصی ۱۰۰ بار اجرا شود یا حتی تعداد تکرار مورد نیاز، مشخص نباشد. گاهی از اوقات هم لازم است عملیات خاصی بر روی همه اعضای آرایه‌های ++C انجام شود. برای اجرای چنین عملیاتی در زبان‌های برنامه نویسی از ساختار حلقه استفاده می‌کنیم. مانند بیشتر زبان‌های برنامه نویسی، ++C هم ابزارهای درونی خود را برای تکرار کد‌ها دارد.

فهرست مطالب این نوشته
997696

در این مطلب از مجله فرادرس با انواع حلقه ها در ++C آشنا می‌شویم. ابتدا این حلقه‌ها را معرفی کرده و سپس سینتکس و روش استفاده تک به تک آن‌ها را به کمک مثال‌های کدنویسی شده، بررسی کرده‌ایم. در ادامه، حلقه‌های بی‌نهایت و تو در تو را نیز توضیح دادیم. در بخش پایانی نیز، تمام عبارت‌های کنترل حلقه در ++C را معرفی کرده و روش استفاده از آن‌ها را با کمک مثال بررسی کرده‌ایم.

انواع حلقه ها در ++C

حلقه‌های ++C در سه گروه اصلی زیر دسته‌بندی می‌شوند.

  • حلقه‌ for: در دنیای برنامه نویسی، حلقه‌ for از بقیه حلقه‌ها مشهورتر و پرکاربردتر است. کامپیوتر با کمک این حلقه، بلوک خاصی از کدها را به صورت تکراری اجرا می‌کند. اما تعداد این تکرارها مشخص است. با توجه به شرط مشخص شده، تعداد تکرار کدها در حلقه تعیین می‌شود. هربار قبل از اجرای کدهای داخل حلقه، این شرط بررسی می‌شود. اگر شرط برقرار بود، دستورات حلقه اجرا می‌شوند و در غیر این صورت، کار حلقه به پایان رسیده و بقیه برنامه از خط بعد از حلقه ادامه پیدا می‌کند. در هر تکرار، مقدار شمارنده طبق دستور، افزایش یا کاهش می‌یابد.
  • حلقه‌ while: حلقه پرکاربرد بعدی، حلقه‌ while است. این حلقه‌ هم مانند حلقه‌ for، بلوک خاصی از کدها را بارها و بارها تکرار می‌کند. این تکرار تا زمان برقرار بودن شرط مشخص شده، انجام می‌شود. در حلقه‌ while همیشه ابتدا شرط حلقه بررسی می‌شود. اگر شرط برقرار باشد، برنامه،‌ دستورات زیر مجموعه حلقه را اجرا می‌کند. بزرگترین تفاوت بین حلقه‌‌های while و for مربوط به روش نوشتن آن‌ها است. حلقه for شامل سه بخش است: مقداردهی اولیه، شرط ادامه حلقه و تغییر مقدار شمارنده. اما حلقه‌ while فقط با «شرط» نوشته می‌شود. متغیرهای مربوط به شرط حلقه‌ while در بخش‌های دیگری از برنامه نوشته می‌شوند.
  • حلقه‌ do while: روش نوشتن حلقه‌ do while شبیه به حلقه‌ while است. تفاوت اصلی بین این حلقه‌ها آن‌جا است که حلقه‌ do while، شرط مشخص شده را بعد از اجرای کدهای درون حلقه بررسی می‌کند. یعنی آن که کدهای نوشته شده درون بلوک حلقه‌ do while حداقل یک بار اجرا می‌شوند. حتی اگر شرط مشخص شده از ابتدا برقرار نباشد.
یک دایره سبز که با فلش به سه مستطیل قرمز متصل شده است.
انواع حلقه ها در ++C

در ادامه مطلب، تمام حلقه‌های بالا را به اضافه حلقه‌های تو در تو و حلقه بی‌نهایت بررسی کرده‌ایم.

حلقه‌ for در ++C

حلقه‌ for، نوعی از حلقه است که به برنامه نویسان برای اجرای وظایف خاصی با تعداد تکرار مشخص کمک می‌کند. به این حلقه، «حلقه با ورود کنترل شده» (Entry-Controlled Loop) گفته می‌شود. یعنی آن که اول شرط‌ مشخص شده در حلقه بررسی می‌شود. اگر شرط برقرار بود، دستورات داخل بلوک کد اجرا می‌شوند. در غیر این صورت برنامه از بلوک حلقه خارج می‌‌شود. فقط به شرطی دستورات داخل حلقه اجرا می‌شوند که شرط آن برقرار باشد.

برای استفاده بهتر از حلقه‌ها لازم است که با تمام ساختارهای زبان ++C از قبلی متغیر‌ها، انواع داده، عبارت‌های شرطی و غیره نیز آشنا باشید. یکی از بهترین روش‌های کسب مهارت در کار با این زبان، مشاهده فیلم آموزش مقدماتی سی پلاس پلاس، ویژه نوجوانان از فرادرس است. بعد از تماشای این دوره و شرکت در آزمون آنلاین آن گواهینامه پایان دوره مقدماتی ++C از طرف فرادرس به شما داده می‌شود. برای کمک به مخاطبان مجله، لینک این فیلم را در پایین نیز قرار داده‌ایم.

در کادر پایین، سینتکس اولیه حلقه‌ for را نوشته‌ایم.

در سینتکس بالا، سه بخش اصلی در حلقه‌ for دیده می‌شوند. این بخش‌ها را در فهرست زیر معرفی کرده‌ایم.

  • initialization: اولین بخش در ساختار کنترلی حلقه for، بخش Initialization  یا «مقداردهی اولیه» شمارنده حلقه است.
  • condition: در بخش دوم، شرایط مربوط به شمارنده را مشخص کرده‌ایم. تا وقتی که شرط مشخص شده درست باشند، دستورات داخل بلوک حلقه اجرا می‌شوند. اما اگر شرط غلط ارزیابی شود، کار حلقه به پایان رسیده و کدهای بعد از حلقه – در صورت وجود – اجرا می‌‌شوند.
  • updation: بعد از اجرای بدنه حلقه، این عبارت، متغیر شمارنده حلقه را به میزان مشخص شده زیاد یا کم می‌کند.
نماد سی پلاس پلاس در وسط حلقه‌ای که گردش عملیات را نشان می‌دهد.

برای اینکه حلقه درست و منطقی کار کند، هر سه بخش اصلی آن باید با هم هماهنگ باشند. به منظور کمک به درک بهتر مطلب، مثال‌ ساده‌ای را در کادر زیر پیاده‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

1 2 3 4 5 

حلقه for بر اساس محدوده

در میان انواع حلقه ها در ++C، نوع خاصی از حلقه‌ for با نام «حلقه‌ for محدوده‌محور» (Range-Based for Loop) وجود دارد. این حلقه در نسخه ۱۱ از زبان ++C معرفی شده است. با کمک این نوع از حلقه‌ for بدون مشخص کردن شمارنده و شرط، می‌توانیم بر روی محدوده خاصی پیمایش کنیم. این محدوده، شامل هر ساختار پیمایش‌پذیری می‌شود. به عنوان مثال می‌توان به آرایه‌ها، رشته‌ها و غیره اشاره کرد.

با کمک این تکنیک، نسبت به حلقه‌های for معمولی می‌توانیم کدهای خوانا‌تر و ساده‌تری بنویسیم. در کادر زیر، مثال ساده‌ای از حلقه‌ for محدوده‌محور را پیاده‌سازی کرده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

1 2 3 4 5 

در کد بالا، با کمک حلقه‌ for محدوده‌محور بر روی ساختار vector  پیمایش کرده‌ایم. همین طور که مشاهده می‌کنید، برای پیمایش بر روی این ساختار نیازی به تعیین اندازه یا تعریف پیمایشگر نداریم. فقط از نام vector  استفاده کرده‌ایم.

در کادر پایین، سینتکس روش تعریف حلقه‌ for محدوده‌محور یا Range Based را نوشته‌ایم.

در این حلقه دو پارامتر اصلی وجود دارند. این پارامترها در فهرست زیر تعریف شده‌اند.

  • declaration: در این قسمت، متغیری تعریف می‌کنیم که به‌جای عناصر موجود در مجموعه – مثل آرایه یا لیست – استفاده می‌شود.
  • range: در این قسمت، نام محدوده یا مجموعه‌ مورد نظر را می‌نویسیم.

در کادر زیر، با استفاده از حلقه‌ for محدوده‌محور، بر روی آرایه arr  پیمایش کرده‌ایم. در این حلقه از متغیر i  به عنوان نماینده عناصر آرایه استفاده می‌شود.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

1 2 3 4 5 

چگونه با کمک فرادرس، زبان ++C را یاد بگیریم؟

فرادرس برای کمک به علاقه‌مندان برنامه نویسی با زبان ++C مجموعه‌ای از محتوا‌های متنوع را تهیه و منتشر کرده است. کسانی که به طور انحصاری به دنبال آموزش بر روی بعضی از مسائل مشخص مانند انواع حلقه ها در ++C هستند، می‌‌توانند از مطالب منتشر شده در مجله استفاده کنند. اما اگر نیاز به آموزش کامل این زبان از صفر تا صد دارید، بهتر است که فیلم‌های آموزشی فرادرس را تماشا کنید. برای آموزش ++C می‌توانید از مجموعه فیلم‌های آموزشی «برنامه نویسی سی پلاس پلاس» استفاده کنید. با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزش هدایت می‌شوید.

مجموعه آموزش برنامه نویسی سی پلاس پلاس ++C – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی سی پلاس پلاس هدایت شوید.

++C زبان برنامه نویسی همه‌منظوره و عمومی است که در بسیاری از شاخه‌های علم کامپیوتر کاربرد دارد. این زبان از مفاهیم شی‌گرایی، وراثت و چندریختی پشتیبانی می‌کند. به دلیل توانایی‌های زیاد ++C، در پروژه‌های متنوعی از آن استفاده می‌شود. به همین دلیل فرادرس برای آموزش ++C فیلم‌های مختلفی به صورت پروژه محور و معمولی تولید کرده است. در پایین چند مورد از فیلم‌های آموزشی فرادرس را معرفی کرده‌ایم.

در ادامه، به بررسی حلقه while در ++C می‌پردازیم و روش استفاده و کاربرد آن را توضیح می‌دهیم.

حلقه‌ while در ++C

حلقه‌ while هم از نوع «حلقه با ورود کنترل شده» (Entry-Controlled Loop) است. برعکس حلقه‌ for، از حلقه while هنگامی استفاده می‌شود که تعداد دقیق پیمایش حلقه از قبل مشخص نیست.

در حلقه‌ for می‌دانیم که کدهای داخل حلقه چندبار باید تکرار شود. به همین دلیل از ابتدا مقدار شمارنده، شرط و گام تغییر آن را تنظیم می‌کنیم. اما در حلقه‌ while، فقط شرطی را مشخص می‌کنیم. تا زمانی که این شرط برقرار باشد، کدهای داخل حلقه اجرا می‌شوند.

در کادر پایین، سینتکس لازم برای پیاده‌سازی حلقه‌ while را نوشته‌ایم.

برای تعریف حلقه‌ while لازم است که شرط را مشخص کنیم. این شرط تنهابخشی از سینتکس حلقه است که توسط کاربر تعریف می‌‌شود. کدهای مربوط به تغییرات متغیرها و به‌روزرسانی حلقه را به صورت دستی تنظیم می‌کنیم.

در کادر پایین، مثال ساده‌ای را درباره حلقه‌ while نوشته‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

1 2 3 4 5 

حلقه‌ do while در ++C

حلقه‌ do while هم مانند حلقه‌ while است. تنها تفاوت این ساختار‌ها در زمان بررسی شرط حلقه است. در حلقه‌ do while – برعکس حلقه‌ while – عبارت شرطی حلقه در انتهای آن بررسی می‌شود. یعنی بعد از اینکه کدهای درون حلقه اجرا شدند. یعنی اینکه حتی اگر شرط تعریف شده برای حلقه از اول هم برقرار نباشد، بدنه آن حداقل یک بار اجرا می‌شود.

در کادر زیر، سینتکس لازم برای نوشتن حلقه‌ do while  را پیاده‌سازی کرده‌ایم.

در این حلقه‌ هم مانند حلقه‌ while ، شرط، فقط بخشی از سینتکس است. کارهای مربوط به مقداردهی و به‌روزرسانی متغیرهای مربوط به شرط باید به صورت دستی و توسط برنامه نویس انجام شوند.

مجموعه‌ای از مکعب‌ها که با کمک خطوط نورانی به یکدیگر متصل شده‌اند.

در کادر پایین، مثال ساده‌ای را درباره حلقه‌ do while  نوشته‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

1 2 3 4 5 

نکته: در زمان تعریف این حلقه، حتما به قرار دادن ; بعد از تعریف شرط در انتهای آن دقت کنید.

حلقه بی‌نهایت در ++C

حلقه بی‌نهایت به حلقه‌ای گفته می‌شود که عبارت شرطی برای خروج از حلقه در آن تعریف نشده است. بنابراین این حلقه همیشه و به صورت دائمی اجرا می‌شود. حلقه بی‌نهایت، زمانی به وجود می‌آید که شرط تعریف شده برای آن همیشه «True» باشد. معمولا حلقه بی‌نهایت خطا بوده و ناشی از اشتباه برنامه نویس است.

به هرحال با استفاده از هر سه حلقه تعریف شده می‌توانیم حلقه بی‌نهایت بسازیم. در کادر زیر، ساده‌ترین روش تعریف حلقه بی‌نهایت را با کمک حلقه‌ for نمایش داده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

This loop will run forever.
This loop will run forever.
...................

با استفاده از حلقه‌ while

هم می‌‌توانیم، حلقه بی‌نهایت تعریف کنیم. در کادر زیر، با کمک مثال ساده‌ای روش استفاده از حلقه‌ while را برای ساخت حلقه بی‌نهایت نشان داده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

Faradars
Faradars
.
.
.
infinite times

حلقه‌ های تو در تو در ++C

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

نکته: زبان برنامه نویسی ++C از ساختارهای تو در تو در جاهایی دیگری مانند عبارت‌های شرطی نیز پشتیبانی می‌کند. درک صحیح این ساختارها باعث افزایش مهارت کدنویسی و افزایش کارآمدی برنامه‌ها می‌شود. برای مطالعه درباره عبارت‌های شرطی تو در تو در ++C، پیشنهاد می‌کنیم که مطلب مربوط به آن را در مجله فرادرس، مطالعه کنید.

برای تعریف حلقه‌های تو در تو می‌توانیم از هر سه روش پیاده‌سازی حلقه ها در ++C استفاده کنیم. در ادامه برای هر کدام از انواع حلقه ها در ++C مثالی را کدنویسی کرده‌ایم.

اعداد درخشان و طلایی رانگی که به صورت مارپیچی پشت سرهم چیده شده‌اند.

حلقه‌ تو در تو با کمک حلقه‌ for

در کد زیر، با کمک حلقه‌ for، ساختار تو در توی ساده‌ای را برای شمارش متغیرهای حلقه پیاده‌سازی کردیم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1

حلقه‌ تو در تو با کمک حلقه‌ while

در کد زیر، از حلقه‌ while به صورت تو در تو استفاده کرده‌ایم. با کمک این کد الگوی مربعی از ستاره‌ها *  تشکیل داده‌ایم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

* * * *
* * * *
* * * *
* * * *

حلقه‌ تو در تو با کمک حلقه‌ do while

در این بخش از مطلب، برای پیاده‌سازی حلقه تو در تو از حلقه‌ do while  استفاده کرده‌ایم. در کد پایین با کمک حلقه تو در تو* الگوی مربعی ساخته‌ایم. برای ساخت این الگو از کاراکتر *  کمک گرفتیم.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

* * * *
* * * *
* * * *
* * * *

نکته: برای ساخت حلقه‌های تو در تو می‌توانیم از حلقه‌های مختلفی مانند for و while نیز درون یکدیگر استفاده کنیم.

آموزش برنامه نویسی با کمک فرادرس

برنامه نویسی یکی از مهم‌ترین مهارت‌هایی است که امروزه به آن نیاز داریم. داشتن این مهارت نه تنها برای دانشجویان و فارغ‌التحصیلان رشته‌ی مهندسی کامپیوتر، بلکه در بسیاری از رشته‌ها و زمینه‌های دیگر نیز ضروری است. هر سال، تعداد موقعیت‌های شغلی مرتبط با برنامه نویسی یا وابسته به آن بیشتر می‌‌شوند. از سوی دیگر، کار با کامپیوتر به بخش مهمی از فرآیند تحقیق و پژوهش در بیشتر رشته‌های دانشگاهی تبدیل شده است. بنابراین، دانشجویان برای موفقیت در این مسیر، باید مهارت‌های برنامه نویسی را یاد بگیرند و در آن توانمند شوند. به همین دلیل فرادرس، تمرکز زیادی بر افزایش دانش برنامه نویسی و علوم کامپیوتر در بین جوانان کشور گذاشته است.

در پایین چند مورد از فیلم‌های آموزش برنامه نویسی در فرادرس را معرفی کرده‌ایم.

برای مشاهده فیلم‌های بیشتر بر روی تصویر پایین کلیک کنید.

مجموعه آموزش برنامه نویسی – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی، دوره‌های مقدماتی تا پیشرفته هدایت شوید.

در ادامه مطلب، انواع عبارت‌های کنترل حلقه در زبان ++C را بررسی کرده‌ایم.

عبارت های کنترل حلقه در زبان ++C

به طور کل، جریان طبیعی حلقه‌ها به این صورت است که تا زمان برقرار بودن شرط تعریف شده، حلقه به کار خود ادامه می‌دهد. در هربار تکرار حلقه، مجموعه‌ای از دستورات مشخص شده در آن اجرا می‌‌شوند. اما در زبان برنامه نویسی ++C روش‌هایی برای اعمال تغییرات در جریان عادی کار حلقه‌ها فراهم شده است. برای انجام این کار باید از عبارت‌های کنترل حلقه استفاده کنیم. برای کنترل حلقه‌ها در زبان ++C سه عبارت متفاوت، تعریف شده‌اند.

یک دایره سبز رنگ که با فلش به سه مستطیل زرد رنگ متصل شده است. پس زمینه آبی رنگ است.
عبارت های کنترل حلقه در زبان ++C

در ادامه مطلب، هر سه ساختار کنترلی بالا را معرفی کرده‌ایم.

عبارت Break

در زبان برنامه نویسی ++C، دو کاربرد اصلی برای عبارت Break وجود دارد.

  • داخل حلقه: وقتی که از عبارت break  در داخل حلقه استفاده کنیم، برنامه به محض دیدن این عبارت اجرای حلقه را متوقف می‌کند. سپس ادامه برنامه از اولین کد بعد از حلقه، اجرا می‌شود.
  • داخل عبارت Switch: از break  برای به پایان رساندن «Case» در عبارت «Switch» استفاده می‌شود.

در این بخش از مطلب، رفتار عبارت break  را در حلقه‌ بررسی می‌کنیم. سینتکس این عبارت برای استفاده بسیار ساده بوده و به شکل زیر است.

برای نمایش رفتار این عبارت از مثال ساده‌ای استفاده کرده‌ایم. با اینکه این مثال با کمک حلقه do while  پیاده‌سازی شده، اما رفتار عبارت break  در تمام حلقه‌ها یکسان است.

بعد از اجرای کدهای بالا، خروجی زیر تولید شده و در کنسول ++C نمایش داده می‌شود.

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15

در کد بالا، عبارت داخل بدنه حلقه‌ do while  دستور چاپ تمام اعداد بین 10  و 20  را داده است. اما در داخل حلقه به محض برابر شدن شمارنده آن با عدد 15، دستور break;اجرا می‌شود. بنابراین عددهای بزرگ‌تر از 15  چاپ نمی‌شوند.

عبارت Continue

عبارت continue  هم تقریبا مانند عبارت break کار می‌کند. با این تفاوت که عبارت continue  باعث توقف کامل حلقه نمی‌شود. بلکه در هر دور که با عبارت continue  روبه‌رو شویم، فقط ادامه کدهای حلقه نادیده گرفته شده و دور بعدی آن شروع می‌شود.

  • در حلقه for اجرای دستور continue  باعث توقف دور فعلی حلقه می‌شود. سپس برنامه عبارت شرطی حلقه را بررسی می‌کند. اگر شرط برقرار بود، دستور مربوط به به‌روزرسانی شمارنده اجرا می‌شود. بعد از آن کدهای بدنه حلقه اجرا می‌شوند.
  • در حلقه‌های while و do while، برنامه به شکل مستقیم به مرحله بررسی شرط هدایت می‌شود.

برای استفاده از دستور continue  فقط کافی است که آن را به همراه علامت سمی‌کالن «;» در یک خط مجزا بنویسیم.

به منظور کمک به درک بهتر مطلب، مثالی را در کادر زیر بررسی کرده‌ایم.

در کد بالا از حلقه do while  استفاده کردیم. با کمک این حلقه، تمام اعداد بین 10  تا 20  را چاپ می‌کنیم. اما در بدنه حلقه با کمک عبارت شرطی if  نوشته‌ایم که اگر a==15  شد، دستور continue  اجرا شده و بلافاصله دور بعد حلقه شروع به کار کند. در این صورت عدد 15  چاپ نمی‌شود.

بعد از اجرای کد بالا، خروجی زیر در کنسول ++C نمایش داده می‌شود.

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19

مقایسه Continue و Break در ++C

عبارت continue باقیمانده دستورات پیمایش فعلی را متوقف کرده و پیمایش بعدی حلقه را شروع می‌کند. مهم‌ترین کاربرد این دستور وقتی است که کاربران بر اساس شرایط مشخص شده می‌خواهند بقیه دستورات مرحله خاصی از حلقه را نادیده بگیرند. برای نمونه در زمان فیلتر کردن داده‌ها می‌توانیم از این روش استفاده کنیم. یعنی همه داده‌ها را بررسی می‌کنیم. اما اگر با داده‌های نامعتبر یا ناخواسته رو‌به‌رو شدیم، با کمک دستور continue  از انجام عملیات بر روی آن‌ها صرف‌نظر کرده و به سراغ داده بعدی برویم.

مجموعه‌ای نمایشگرهای مجازی کدنویسی در کنار مربع زرد رنگی که بر روی آن ++C نوشته شده است.

این دستور، حلقه را متوقف نمی‌کند، فقط بلافاصله اجرای کدها را از دور بعدی حلقه شروع می‌کند. اما دستور break  کل ساختار حلقه را به شکل کامل متوقف می‌کند. در این حالت، ادامه اجرای برنامه به کدهای بعد از حلقه منتقل می‌شود.

عبارت Goto

از دستور goto  برای پریدن بدون شرط به بخش خاصی از برنامه استفاده می‌کنیم. این بخش خاص باید با کمک عبارتی برچسب زده شود. در کد زیر، سینتکس ابتدایی مربوط به استفاده از دستور goto  را نوشته‌ایم.

در سینتکس بالا پارامتر label  برای اشاره به برچسب کدهای مشخص شده استفاده شده است. از برچسب به عنوان شناسه دستور استفاده می‌‌شود. بعد از نوشتن عبارت برچسب باید از «:» استفاده کنیم.

از دستور goto  برای جابه‌جا شدن بین کدهای بلوک خاصی از برنامه مانند توابع استفاده می‌شود. نمی‌توانیم با کمک goto  از درون تابع به بیرون از آن رفته یا از بیرون تابع به درون آن بپریم. دستور goto  و برچسب آن حتما باید در تابع یکسانی تعریف شوند.

نکته: تا جای ممکن باید سعی کنیم که در برنامه‌های خود از دستور goto  استفاده نکنیم. استفاده از این دستور، دنبال کردن جریان کدها را سخت می‌کند. در نتیجه خوانایی برنامه کمتر می‌شود. همچنین علمیات اصلاح یا تغییر کدها نیز مشکل‌ می‌شود. هر برنامه‌ای که از goto  استفاده می‌کند را می‌توان با استفاده از ساختارهای معمولی، بازنویسی کرد. بنابراین سعی کنید با کمک حلقه‌ها یا دیگر عبارت‌های کنترلی، برنامه خود را به شکل خوانا‌ و واضح‌تری بنویسید.

یکی از بهترین کاربردهای عبارت goto  برای خروج از حلقه‌های تو‌درتوی پیچیده است. در کد زیر روش استفاده از این دستور را نشان داده‌ایم.

استفاده از دستور goto  برای اجرای این عملیات، دو علت مهم دارد.

  • در چنین ساختار‌هایی بدون استفاده از دستور goto  ، برنامه مجبور است که بررسی‌های زیادی انجام دهد.
  • عبارت ساده break  نمی‌تواند چنین کارکردی داشته باشد. زیرا این عبارت فقط اجرای حلقه درونی را متوقف می‌کند. اما حلقه بیرونی هنوز به کار خودش ادامه می‌دهد.

جمع‌بندی

در زبان ++C برای اجرای دستورات تکراری، از ساختارهای حلقه استفاده می‌شود. انواع حلقه ها در ++C شامل for و while و do while  هستند. حلقه‌ for زمانی به کار می‌رود که تعداد تکرارها از قبل مشخص باشد. حلقه‌ for از سه بخش مقداردهی اولیه شمارنده، شرط و به‌روزرسانی شمارنده تشکیل شده است. حلقه‌ while برای زمانی مناسب است که تعداد تکرار مشخص نیست. در این حلقه، شرط قبل از اجرای کد بررسی می‌شود. اما در حلقه‌ do while  شرط پس از اجرای کد بررسی می‌شود. بنابراین دستورات درون این حلقه، حداقل یک‌بار اجرا خواهند شد. حلقه‌ for محدوده‌محور برای ساده‌تر کردن نوشتن کد در زمان پیمایش ساختارهایی مانند آرایه‌ها ارائه شده است.

در این مطلب از مجله فرادرس با انواع حلقه در زبان برنامه نویسی ++C آشنا شده‌ایم. این ساختار‌ها یکی از مفید‌ترین و پرکاربرد‌ترین ساختارهای مدیریت جریان برنامه هستند. می‌توان گفت که بدون استفاده از حلقه ها در ++C نوشتن کدهای پیچیده و برنامه‌های بزرگ تقریبا ناممکن است. بنابراین به عنوان توسعه‌دهنده زبان ++C لازم است که با انواع حلقه آشنا شده و در کار با آن‌ها تسلط پیدا کنیم.

source

توسط expressjs.ir