آموزش ساختار goto در C++ (به زبان کاملا ساده)

رتبه: 0 ار 0 رای sssss
آموزش ساختار goto در C++ (به زبان کاملا ساده)
نویسنده: میلاد حیدری زمان مطالعه 1 دقیقه
Banner Image

در این آموزش ساختار goto ، نحوه ی کار و اینکه چرا باید از استفاده آن اجتناب کرد را می آموزید.

در برنامه نویسی C++ از goto برای تغییر در ترتیب اجرای برنامه و انتقال از یک قسمت به قسمت دیگر کد استفاده می شود.

ساختار goto در C++

goto label;

… .. …

… .. …

… .. …

label:

statement;

… .. …

در ساختار بالا، label علامت است. وقتی که برنامه با goto label; مواجه می شود، کنترل برنامه به label می پرد و ادامه کد از آن جا اجرا می شود.

C:UsersMrDesktopworking-goto.jpg

مثال : goto در C++

  1. // This program calculates the average of numbers entered by user.
  2. // If user enters negative number, it ignores the number and
  3. // calculates the average of number entered before it.
  4. # include
  5. using namespace std;
  6. int main()
  7. {
  8. float num, average, sum = 0.0;
  9. int i, n;
  10. cout << “Maximum number of inputs: “;
  11. cin >> n;
  12. for(i = 1; i <= n; ++i)
  13. {
  14. cout << “Enter n” << i << “: “;
  15. cin >> num;
  16. if(num < 0.0)
  17. {
  18. // Control of the program move to jump:
  19. goto jump;
  20. }
  21. sum += num;
  22. }
  23. jump:
  24. average = sum / (i – 1);
  25. cout << “nAverage = ” << average;
  26. return 0;
  27. }

خروجی

Maximum number of inputs: 10

Enter n1: 2.3

Enter n2: 5.6

Enter n3: -5.6

Average = 3.95

می توانید هر برنامه C++ را بدون استفاده از goto بنویسید.

دلایل پرهیز از استفاده goto

goto به ما این امکان را می دهد که از هر نقطه به نقطه ی دیگری در کد پرش کنیم اما منطق برنامه پیچیده و تو در تو خواهد شد.

در برنامه نویسی مدرن، goto ساختار مضری در نظر گرفته می شود.

به جای goto می توان از break و continue در C++ استفاده کرد.

نکات مهم در استفاده از goto

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

تعریف و استفاده از برچسب:

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

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

   #include <iostream>

   using namespace std;

 

   int main() {

       int i = 0;

 

   start: // تعریف برچسب

       cout << i << " ";

       i++;

 

       if (i < 5) {

           goto start; // استفاده از دستور goto

       }

 

       cout << "End of loop" << endl;

       return 0;

   }

  

کاربردهای مناسب `goto`:

برای خروج از چند حلقه تودرتو:

     for (int i = 0; i < 10; i++) {

         for (int j = 0; j < 10; j++) {

             if (someCondition) {

                 goto exitLoops; // خروج از دو حلقه

             }

         }

     }

   exitLoops:

     cout << "Exited loops." << endl;

مشکلات استفاده از `goto`:

کاهش خوانایی کد: استفاده از `goto` می‌تواند کد را پیچیده و غیرقابل خواندن کند.

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

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

جایگزین‌های مناسب برای `goto`:

حلقه‌ها و شرط‌ها: در بیشتر مواقع، می‌توان از حلقه‌های `for`، `while` و دستورات شرطی `if`، `else` استفاده کرد.

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

استفاده از استثناها: در مواقعی که نیاز به خروج از چندین سطح تودرتو دارید، استفاده از استثناها (Exceptions) می‌تواند جایگزین مناسبی باشد.

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

profile name
میلاد حیدری

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

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش ساختار goto در C++ (به زبان کاملا ساده)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید