AE_ren_Tr
Gönderdiğiniz koddaki "goto" ifadelerinin özel olarak neden sıkıntılı olduğunu açıklayayım.
Gönderdiğiniz kodda, "goto" ifadeleri şu şekillerde kullanılmıştı:
Ana Menüye Dönüş:
goto x;
Masa Açma İşlemi Tekrarı:
goto a;
Masa Durumu Belirleme Tekrarı:
goto o;
Bu "goto" ifadeleri, aşağıdaki sorunları yaratabilir:
Kodun Takip Edilmesi Zorlaşır:
- "Goto" ifadeleri kodun belirli yerlerine sıçramalar yaptığından, kodun akışını takip etmek zorlaşır. Hangi koşulda hangi kodun çalışacağını anlamak, "goto" ifadeleri ile daha karmaşık hale gelir.
Kodun Okunabilirliği Azalır:
- "Goto" ifadeleri, kodun doğal akışını bozar ve okuyucunun hangi durumda ne olacağını anlamasını zorlaştırır. Bu da kodun anlaşılmasını zorlaştırır.
Hataların Bulunması ve Düzeltilmesi Zorlaşır:
- Hataları bulmak ve düzeltmek, "goto" ifadeleri ile daha zor olabilir çünkü kodun her yerine sıçrayabilme potansiyeli vardır. Bu da hata ayıklamayı ve kodun bakımını zorlaştırır.
Yapısal Programlama Prensiplerine Aykırıdır:
- Yapısal programlama, kodun daha modüler, okunabilir ve bakımı kolay olmasını savunur. "Goto" ifadeleri, bu yapısallığı bozar ve programın rastgele yerlerinde sıçramalara neden olur.
Gönderdiğiniz kodda bu sorunları çözmek için "goto" ifadelerini kaldırarak, döngüler ve fonksiyonlar kullanarak daha yapılandırılmış ve okunabilir bir kod haline getirdik.
Düzenlenmiş Kodun Avantajları:
Daha Temiz ve Okunabilir Kod:
- Fonksiyonlar ve döngüler kullanarak kodun akışını daha temiz ve okunabilir hale getirdik.
Hataların Daha Kolay Bulunması:
- Yapısal programlama teknikleri kullanarak hataların daha kolay bulunmasını sağladık. Her işlev kendi fonksiyonunda yer alıyor ve bu da hata ayıklamayı kolaylaştırıyor.
Yeniden Kullanılabilirlik:
- Fonksiyonlar kullanarak kodun belirli kısımlarını tekrar tekrar kullanabilir hale getirdik. Bu da kodun daha modüler olmasını sağladı.
Örnek:
İşte "goto" ifadeleri yerine döngü ve fonksiyonlar kullanılarak yapılan bir örnek:
Eski Kod:
y:
Console.WriteLine("ana menuye(1) gitmek veya cikis(2) veya masa acma(3) icin numaralari yaziniz ");
int devam=int.Parse(Console.ReadLine());
if (devam == 1)
{
goto x;
}
else if (devam == 2)
{
Console.Clear();
Console.WriteLine("cikis yapildi");
}
else if (devam == 3)
{
goto a;
}
else
{
Console.WriteLine("yanlis bir sey girdiniz lutfen talimatlara uyunuz");
Console.ReadLine();
goto y;
}
Yeni Kod:
while (true)
{
Console.WriteLine("Ana menuye(1) gitmek veya çıkış(2) veya masa açma(3) için numaraları yazınız ");
int devam = int.Parse(Console.ReadLine());
if (devam == 1)
{
return; // Ana menüye dön
}
else if (devam == 2)
{
Console.Clear();
Console.WriteLine("Çıkış yapıldı.");
Environment.Exit(0);
}
else if (devam == 3)
{
MasaEkle(ref masalar);
}
else
{
Console.WriteLine("Yanlış bir şey girdiniz, lütfen talimatlara uyunuz.");
}
}
Bu şekilde, "goto" ifadelerinden kaçınarak daha yapılandırılmış ve okunabilir bir kod elde etmiş olduk.