Ancak programlama dilleri, programcıya tanıdıkları esneklikten dolayı gitme komutlarını desteklerler. Goto kullanımı çoğu zaman kötü programcılıkla karıştırılır ki; çoğu zaman da öyledir aslında. Her goto kullandığınızda koda bir daha bakın, başka bir yol olmadığından emin olmak için. Ancak bazı ender durumlarda bir sorunun ancak goto ile çözüldüğünü görebilirsiniz, ama yine de dikkatli olun.
goto, çalışabilmek için etiketlere ihtiyaç duyar. Etiketler, vereceğiniz herhangi bir isme sahip olabilir. Etiket oluşturmak için bütün yapmanız gereken; etiket adını belirleyip,sonuna iki nokta üst üste eklemek ( : ) ve programın herhangi bir yerine bunu yazmaktır. goto deyimi kullanarak bu etiketleri çağırırsanız, etiketin altında bulunan kodlardan devam edilir. goto ve etiketlere dair genel yapıyı, akış diyagramıyla birlikte aşağıda bulabilirsiniz:
goto Akış Diyagramı
goto Yapısı:
label_name: . . if( kosul ) { goto label_name } . . .
NOT: goto deyimi tek başına da kullanılabilir. Fakat mantıksal bir sınama olmadan, goto yapısını kullanmanız, sonsuz döngüye neden olacaktır.
Şimdi goto ifadesiyle basit bir döngü örneği oluşturalım.ekrana 10 defa "Merhaba Dünya" yazdıralım:
Örnek 1 :
Program derlendiğinde aşağıdaki sonucu verecektir.
İstediğiniz sayıda etiket koyup, goto kullanarak, programın herhangi bir noktasına ulaşabilirsiniz. Programınız, etiket altında kalan kısımdan itibaren çalışır. goto yapısıyla gelen esneklik, ilk bakışta oldukça güzel görünüyor. Ancak goto için birçok kaynak, "ya hiç kullanmayın ya da olabildiğince az kullanın" demektedir.
Okunup, anlaşılması zor ve üzerinde çalışılması güç bir koddan, herkesin uzak durması gerekir. İngilizce'de, karman çorman koda, "spagetti kod" adı verilmiştir. goto deyimi, kodunuzun spagetti koda dönüşmesine neden olur. Çünkü program akışının takibini zorlaştırıp, kodun okunabilirliğini azaltır. Diliyorsanız, goto deyimini kullanabilirsiniz. Ama zorunlu kalmadıkça kaçınmak en iyisi...
Örnek 2 :
Program derlendiğinde aşağıdaki sonucu verecektir.
CheckEvenOrNot işlevinde ‘even:’ işleminden sonra return ifadesine dikkat edin. Program, etikete çift ile atladıktan sonra: program her kod parçasını çalıştırır. Bu yüzden eğer sayı eşitse geri dönmek önemlidir. Aksi takdirde, tek sayılı etiket sonrasındaki kod da sonrasındaki gibi çalıştırılır.
Örnek 3 :
Program derlendiğinde aşağıdaki sonucu verecektir;
C++ ile daha fazla makale paylaşımlarım için C++ etiketini takipte kalın.
Herkese kolay gelsin....