Clear        


                
                    // foreach Loop (foreach Döngüsü)

using _13_ForEachLoop.Demos;

namespace _13_ForEachLoop
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // herhangi bir kolleksiyonun index'ten bağımsız tüm elemanlarını turlayabilmek için kullanılır
            string[] sehirler = { "Ankara", "İstanbul", "İzmir", "Adana", "Bursa", "Diyarbakır" };
            foreach (string sehir in sehirler)
            {
                Console.WriteLine(sehir);
            }



            // Algoritma örnek 1: Kolleksiyonda Veri Arama
            // 1. başla
            // 2. içinde bilgisayar, araba, müzik, köpek ve kahve kelimelerinin bulunduğu bir dizi oluşturulur
            // 3. kullanıcıdan herhangi bir kelime girilmesi istenir
            // 4. bir methodda girilen kelime kolleksiyonda aranır ve bulunursa bulundu olarak işaretlenir
            // 5. eğer kelime bulundu olarak işaretlendiyse ekrana aranan kelime bulundu
            // 6. eğer kelime bulundu olarak işaretlenmediyse aranan kelime bulunamadı yazdırılır
            // 7. bitiş
            string[] kelimeler = new string[5]
            {
                "bilgisayar",
                "araba",
                "müzik",
                "köpek",
                "kahve"
            };
            Console.Write("Aranacak kelime: ");
            string aranacakKelime = Console.ReadLine();
            Ara(aranacakKelime, kelimeler);



            #region Demos
            PlakalaraGoreSehirler.Calistir();
            IliskiTesti.Calistir();
            #endregion
        }



        // Algoritma örnek 1: Kolleksiyonda Veri Arama
        static void Ara(string aranacakKelime, string[] kelimeler)
        {
            bool bulundu = false; // flag (işaret), ilk başta kelime bulunamadı olarak işaretliyoruz
            foreach (string kelime in kelimeler)
            {
                if (kelime == aranacakKelime)
                {
                    bulundu = true; // eğer aranan kelime döngünün bu turundaki kelimeye eşitse flag'i bulundu olarak işaretliyoruz
                    break; // kolleksiyondaki bu kelimeden sonraki elemanların turlanmasına gerek olmadığı için döngüyü break ile kırıyoruz yani sonlandırıyoruz
                }
            }
            if (bulundu) // döngü bittikten sonra bulundu true olarak işaretlendiyse konsola aranan kelime bulundu, false olarak işaretlendiyse konsola aranan kelime bulunamadı yazdırıyoruz
                Console.WriteLine(aranacakKelime + " bulundu.");
            else
                Console.WriteLine(aranacakKelime + " bulunamadı.");
        }
    }
}