زبان برنامه نویسی سی/دستور goto: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
جزبدون خلاصۀ ویرایش |
||
خط ۲۳:
در اینجا result یک برچسب است با شناسه و نام result که اگر بنویسید ;goto result روند اجرای برنامه به برچسب result میرود و خطبهخط از آنجا به بعد ادامه یافته و کدها اجرا میشوند . برچسب میتواند پس از goto یا قبل از goto نوشته شده باشد .
یکی از کاربردهای goto برای خروج از حلقههای تو در تو میباشد ؛ مثلاً فرض کنید شما یک برنامهای مینویسید که مبتنی بر هوش مصنوعی است و در هنگام نوشتن هوش مصنوعی ( مثل پروژه CGI ) مجبورید از حلقههای خیلی زیادی که تو در تو نیز هستند استفاده کنید ؛ مثلاً فرض کنید ۸ حلقه تو در تو در دارید که اگر شرط خاصی برقرار بود باید تمام حلقهها بشکنند و از تکرار آنها جلوگیری شود ؛ اگر بخواهید از روش متداول شکستن حلقهها استفاده کنید باید یک به یک در حلقهها شرط خود را بنویسید که اگر برقرار بود با دستور break حلقه ، شکسته شود ؛ پس شما ۸ بار باید کد تکراری را بزنید در حالی که با نوشتن یک برچسب بیرون از هر ۸ حلقه ( و پس از آنها ) و نوشتن یک goto داخل حلقه مورد نظر و داخلی اجرای تمام حلقهها را متوقف
در مجموع سعی کنید تا زمانی که نیازی نیست از goto استفاده نکنید . دقت کنید که از goto تنها داخل بدنه تابع میتوان استفاده نمود و به هر جای تابع که برچسبی داشته باشد ، دسترسی دارد و به آنجا میپرد ( jump ) یعنی از یک قسمت از برنامه که دارد اجرا میشود به قسمت دیگری از برنامه میرود ( که مسلماً به واسطه ;goto label-identifier اتفاق میافتد ) اما '''دقت کنید''' که goto نمیتواند از داخل یک تابع به داخل تابع دیگری برود ؛ یعنی هر برچسب ، محلی میباشد و داخل تابع خود معنا و امکان حضور مییابد
|