$1.99 Domains* at GoDaddy.com

C Programlama goto Yapısı

c_programlama-158C programlama dilinde bulunan bir başka yapı, goto deyimidir. Koyacağınız etiketler sayesinde, programın bir noktasından bir başka noktasına atlamanızı sağlar. goto, bir döngü değildir ancak döngü olarak kullanılabilir.

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 Yapısı goto Akış Diyagramı
label_name:
	.
	.
	.

if( kosul ) {
	goto label_name
}
	.
	.
	.
sm_goto 

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. Önceki seferlerde olduÄŸu gibi ekrana 10 defa “Merhaba Dünya” yazdıralım:

#include<stdio.h>
int main( void )
{
	int i = 0;
	// baslangic_noktasi adinda bir etiket koyuyoruz.
	// i degiskeni 10 degerine ulasmadigi surece,
	// program buraya donecektir.
	baslangic_noktasi:
	printf( "Merhaba Dünya\n" );
	// i degerini arttiriyoruz.
	i++;
	// i degeri kontrol ediliyor. Sayet 10'dan kucukse,
	// en basa donuyor.
	if( i<10 ) goto baslangic_noktasi;

	return 0;
}

İ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…

Kategoriler: C Programlama, Yazılım

Tags: ,

Yorumlar

Yorum Yok

Yorumunuzu Ekleyin

Yorum eklemek için giris yapmalısınız.