گاما رو نصب کن!

{{ number }}
اعلان ها
اعلان جدیدی وجود ندارد!
کاربر جدید

جستجو

پربازدیدها: #{{ tag.title }}

میتونی لایو بذاری!
نمونه سوال محتوای آموزشی آزمون آنلاین پرسش و پاسخ درسنامه آموزشی مدرسه‌یاب معلم‌ها

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

بروزرسانی شده در: 10:56 1405/04/14 مشاهده: 49     دسته بندی: کپسول آموزشی

بلاک کد و تورفتگی؛ نظم پنهان در برنامه‌نویسی

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

بلاک کد چیست و چطور تشکیل می‌شود؟

فرض کنید در حال نوشتن یک دستور شرطی هستید که می‌گوید: «اگر نمره‌ی دانش‌آموز از 12 بیشتر بود، به او بگو قبول شدی و یک پیام تبریک هم برایش بنویس.» اینجا دو دستور داریم که هر دو فقط وقتی اجرا می‌شوند که نمره از 12 بیشتر باشد. برای اینکه کامپیوتر بفهمد هر دوی این دستورها به شرط مربوط می‌شوند، آن‌ها را به‌صورت یک بلاک کد می‌نویسیم. یعنی هر دو دستور را با فاصله‌ی یکسان از سمت چپ صفحه شروع می‌کنیم. به این فاصله‌ی ابتدای خط، «تورفتگی» می‌گویند. در بسیاری از زبان‌های برنامه‌نویسی مثل پایتون، این فاصله‌ها کاملاً ضروری هستند و اگر رعایت نشوند، برنامه با خطا مواجه می‌شود. در زبان‌هایی مثل جاوااسکریپت یا سی‌پلاس‌پلاس، از آکولاد ({ }) برای مشخص کردن بلاک استفاده می‌شود، اما تورفتگی همچنان به خواناتر شدن کد کمک می‌کند.

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

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

چرا تورفتگی مهم است و چه کاربردی دارد؟

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

یک کاربرد دیگر تورفتگی، مشخص کردن دستورهایی است که باید چند بار تکرار شوند. فرض کنید می‌خواهیم 5 بار عبارت «سلام دنیا!» را چاپ کنیم. اگر دستور چاپ را با تورفتگی داخل حلقه‌ی for قرار دهیم، 5 بار اجرا می‌شود. اما اگر اشتباهاً آن را بدون تورفتگی بنویسیم، فقط یک بار چاپ می‌شود و بقیه‌ی تکرارها هیچ کاری نمی‌کنند. پس تورفتگی مشخص می‌کند که کدام دستورها باید تکرار شوند و کدام‌ها فقط یک بار اجرا گردند. این موضوع در حلقه‌های تو در تو اهمیت بیشتری پیدا می‌کند، چون ممکن است چندین سطح تورفتگی داشته باشیم و هر سطح نشان‌دهنده‌ی عمق تو رفتگی در حلقه‌ها و شرط‌هاست.

نوع نوشتار کد نمونه نتیجه‌ی اجرا
تورفتگی درست if age > 18:
print("ورود مجاز است")
print("خوش آمدید")
هر دو پیام فقط در صورت بزرگ‌تر بودن سن از 18 چاپ می‌شوند.
تورفتگی نادرست if age > 18:
print("ورود مجاز است")
print("خوش آمدید")
پیام اول فقط در صورت بزرگ‌تر بودن سن و پیام دوم همیشه چاپ می‌شود.

پرسش‌های کلیدی و اشتباهات رایج درباره‌ی بلاک کد

آیا تورفتگی فقط برای زیبایی کد است؟

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

چطور بفهمیم کدام دستورها باید در یک بلاک قرار بگیرند؟

دستورهایی که باید تحت تأثیر یک شرط یا حلقه اجرا شوند، باید با فاصله‌ی یکسان از سمت چپ نوشته شوند. معمولاً این فاصله معادل 4 فاصله یا یک تب است.

آیا می‌توانیم داخل یک بلاک، بلاک دیگری داشته باشیم؟

بله، به این کار «بلاک تو در تو» می‌گوییم. مثلاً می‌توانیم یک شرط را داخل یک حلقه قرار دهیم. در این حالت، دستورهای شرط باید یک تورفتگی بیشتر از دستورهای حلقه داشته باشند.

اگر تورفتگی‌ها را قاطی کنیم چه اتفاقی می‌افتد؟

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

خلاصه‌ی آنچه خواندیم:

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