حلقه for در c – آموزش زبان C

حلقه for در c

حلقه for در c

تا این بخش از آموزش در بخش ساختار ها در زبان C ، ساختار شرط if در زبان C و ساختار switch رو توضیح دادیم و این جلسه میریم سراغ حلقه for در c ، چیزی که در تمامی زبان های برنامه نویسی و همینطور برنامه نویسی به زبان C خیلی مهمه اینه که شما بتونین تشخیص بدین که چه زمانی باید از ساختار شرط استفاده کنین و چه زمان از ساختار حلقه ، و چرا؟ که به نوعی الگوریتم نویسی به حساب میاد ، برای این کار بهتره مراحلی که باید در یک برنامه طی بشه رو قبل از هر چیز داخل ذهنتون آماده کنین و بعد روز کاغذ بیارین ، اینطوری وقتی مراحل کد نویسی ، رو توی ذهنتون آماده کردین متوجه میشین که ساختار مناسب برنامتون چیه و کی باید از اون از چه دستوری استفاده کنین.

مثلا اگر در نظر داشته باشین چند متغیر رو روی صفحه چاپ کنید ، یا تعداد ورودی ها ، متغیر ها و .. رو بشمارین(شمارنده) از چهه دستوری استفاده میکنین؟ مشخصه که اینجا چند دستور مشابه داره پشت سر هم اجرا میشه (عمل چاپ کردن پشت سر هم و عمل شمارش) در نتیجه مشخصه که باید از ساختار حلقه for در c استفاده کنین.

حالا اگر قرار باشه که زمانی نسبت به ورودی اعمال شده ، یک خروجی متفاوت رو بگیرین از دستورات شرطی استفاده میکنین که میشه با گذاشتن شرط های مختلف نسبت به ورودی های متفاوت ، خروجی های متفاوتی رو به دست بیاریم و خیلی مثال های دیگه که باید بهشون توجه کنیم!

توضیحات بسه و بریم سراغ ساختار حلقه for در C

شکل کلی حلقه تکرار for (for loop) بصورت زیره:

 

نکات حلقه for در c :

1- شمارنده حلقه میتونه از هر نوعی باشه.(توی مثال ها متوجه میشین)

2- حلقه for تازمانی اجرا میشه که شرط حلقه برقرار باشه.

3- اگر در جلوي for سیمیکلون یا ; بگذاریم این دستور تا موقعی که شرط حلقه برقرار باشد اجرا میشه و پـس از نقض شرط حلقه از حلقه خارج شده و دستورات بعد از اون اجرا میشه.

4 .اگر بعد از for یک دستور داشته باشیم نیازي به کلوشه { } نداریم.(مثال2)

 

این بخش توضیح دیگه ای نداره و واقعا همینقدر ساده هستش! بریم سراغ چند مثال که پیشنهاد میکنم حداقل توی ذهنتون الگوریتم برنامه هارو بنویسید و منطق اونهارو درک کنید و بعد برین سراغ کدنویسیشون.

مثال1 :خروجی حلقه زیر چیست؟

 

خروجی :

0 1 2 3 4

مشخصه که مقدار اولیه اندیس برابر صفره . و شرط حلقه اینه که اگر i که همون اندیس حلقه هستش برابر 5 شد از حلقه خارج بشه. گام حلقه هم اون مقداریه که وقتی حلقه به نقطه پایانی خودش رسید اجرا میشه.یعنی وقتی حلقه for به مقدار کلوشه بسته رسید. i++ اجرا میشه و اینطوری حلقه یک گام جلو میره تا زمانی که i=5 بشه ، هرموقع این اتفاق بیوفته برنامه از حلقه خارج میشه! به همین راحتی 😀

بریم سراغ مثال بعدی…

مثال2 :خروجی حلقه زیر چیست؟

جواب: در این مثال چون {} نداریم پس فقط دستور اول بعد از for مربوط به حلقه و لوپ ما میشه.

پس خروجی 0 تا 2 رو میشماره و چاپ میکنه و هرموقع از حلقه خارج شد به دستور پرینت ok میرسه و اون رو هم چاپ میکنه.

خروجی :

0 1 2 ok

 

مثال3 :برنامه اي بنویسید که جدول کدهاي اسکی را از شماره 41 تا 120 به شکل زیر نمایش دهد.

41=)     42=*       43=+       44=,      45=………
46=.      47=/       48=……

کد های اسکی رو قبلا توضیح دادم ، پس توضیح دوباره نمیدم!

t\ هم قبلا توی جلسات اول توضیح دادم که وقتی میزاریم ، 8 تا Space فاصله میزاره ، اینطوری فاصله مورد نظر که بین کاراکترای چاپ شده سوال اومده ایجاد میشه!

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

مثال4 :برنامه اي بنویسید که تعداد حروف یک جمله را شمارش کند. (انتهاي جمله به نقطه ختم میشود)

خروجی :

I like c very much.

Length of statement is: 18

علامت تعجب ! در زبان برنامه نویسی به معنی نات یا منفی هستش، در اینجا گفته شده تا زمانی که getche مقداری غیر از . (نقطه) هست شرط برقراره و باید به حلقه برگردی ، و زمانی که غیر از . (نقطه) نبود ورودی(یعنی نقطه وارد شد) از حلقه خارج شو! این عمل برای هر ورودی ای که از کیبورد اعمال میشه انجام میشه و برای هر ورودی مقدار گام یکی بهش اضافه میشه.(پیشرفته ی این مثال ، حالتیه که Space های وارد شده بین کلمات رو نشماره! اون رو خودتون بنویسین 😀 )

مثال5 :برنامه اي بنویسید که جدول ضرب 10*10 را نمایش دهد .
خروجی بشکل زیر است:

1    2    3    4    5    6    7    8    9    10
2    4    6    8   10  12  14   16   18   20

در این مثال هم حلقه for دوم در واقع زیر مجموعه ی for اول به حساب میاد ، یعنی هر بار که حلقه دوم یک دور کامل از 1 تا 10 میره ، گام حلقه اصلی یکی جلو میره .

در حلقه دوم i*j ضرب میشه هر بار و هر سطر رو یکبار مینویسه .

در گام اول i=1 هستش ، در نتیجه اعداد 1 تا 10 با اون ضرب میشن و خط اول رو تشکیل میدم

در مرحله دوم زمانی که گام i=2 میشه اعداد 1 تا 10 با 2 ضرب میشن و خط دوم رو تشکیل میدن ؛ همینطور الا آخر ….

خاطرتون هست که گفتم بین d و %  اگر عددی قرار بگیره تعداد خونه های حافظه ای که در نظر گرفته میشه به مقدار همون عدده؟ خب اینجام 3 رقم برای هر عدد در نظر گرفته شده که باعث میشه فاصله ای هم بین خروجی ها به شکل Space بیوفته.

مثال براي اندیس کاراکتري: حلقه for میتونه کاراکتري هم باشه.

خروجی :

65  66  67  68  69

A    B     C    D   E

بخش حلقه for در c از سری آموزش های زبان C هم تموم شد، تمامی کد ها در نرم افزار Devc++ تست شدن ! ساختار حلقه For در نرم افزار کدویژن avr هم به همین شکله 😉

در جلسات بعدی با آموزش گام به گام بازم بخش های دیگه رو آموزش میدیم.

موفق باشید 🙂

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

شما ممکن است این را هم بپسندید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

از لوینیک حمایت کنید