C# Döngüler - Ders / 3 ~ #HeRTeS

HeRTeS

Uzman üye
8 Eyl 2016
1,860
2
Mars
Merhabalar

Bugün sizlerle C# dilinde döngüleri ve döngü kavramının ne olduğunu ele alacağız. Döngüler programlamada işimizi hat safhada kolaylaştıran kod bloklarıdır. Örneğin; Bir işin algoritmasını döngüye belirtip bizim istediğimiz sonuçta şekillenene kadar tekrarlayan kod parçasıdır. Şöyle bir örnek vermek gerekirse: 100 bardak suya ihtiyacımız var. Ve bu 100 bardaklık suyu nasıl yaparız? 100 bardağı tek tek su ile doldurmak mı? Yoksa 1 bardak seçip 100 kere tekrar ederek doldurmak mı? Elbette 2 yöntem daha mantıklı. İşte bu örnek tam olarak döngülerin vazifesini açıklıyor.



For
While
Do while


döngüleri olarak 3 grupta incelenir.​

For Döngüsü​
hWmRlr.png


IQIbLF.jpg


Belirlenen ilk değerden koşul tamamlanan kadar dönen ve işlemleri tekrarlayan kod parçasıdır. Kısaca göstermek gerekirse;

W6Ggny.png

24co0M.png


for (int i = 0; i < length; i++)
{​
Buraya devam ettirmek istediğimiz işlemler;/Tekrarlanacak işlemler​
}​

int i =0;​
bölümünde bir değişken tanımlama işlemi gerçekleşir.​

i > veya < length;​
oluşturduğumuz değişkenin​
(int i = 0)​
belirleyeceğimiz sayıdan küçük olana kadar dönmesini belirliyoruz ve sonuna i++ koyarak aşağıdaki koşul gerçekleşirse değeri​
1​
artırıyoruz.​

Örnekler
hWmRlr.png

1-)​
İstediğimiz yazıyı istediğimiz defa yazdıran bir döngü tasarlayalım. Hemen geçelim.

Öncelikle bir​
for döngüsü​
açıyoruz.

Kod:
[CENTER][CENTER]for (int i = 0; i<=10; i++)
            {
                Console.WriteLine("HeRTeS - TurkHackTeam");
                
            }
            Console.ReadKey();[/CENTER][/CENTER]

Bu örneğimizin mantığını anlatmak gerekirse;
hWmRlr.png


Öncelikle​
i​
adında​
int türünde​
bir değişken tanımladık. Ve bu​
i​
değişkenine​
0 atadık.​
Ve i değişkeni 10'dan küçük ve eşit olana kadar dönmesini sağlıyoruz ve aşağıdaki koşul yerine geldiğinde i'nin değerinin 1 artmasını sağlıyoruz. Bu sayede döngü 10 kere döneceğinden 10 kere koşuldaki yazıyı yazacaktır.

W6Ggny.png

cMnNiq.png

Programın Çıktısı​
hWmRlr.png


W6Ggny.png

03zNgY.png

2-)​
İkinci for döngüsü örneğimizde aşağıdaki gibi olsun.​

0-20​
arasındaki çift sayıları​
ekrana yazdıran ve yazdırırken hangi sayıların çift olduğunu ve o an kaç çift sayı olduğunu hesaplayan bir program yazalım. Şimdi hemen algoritmasını çıkartalım;

Öncelikle for döngüsü olduğunu saptadık. Çünkü 0-20 arasındaki çift sayıları tek tek yazmıyacağımıza göre bunu for ile yapacağız. For döngüsü tanımlamak için "for" yazacağız ve altta rehber çıkacak orada for gördükten sonra ard arda "TAB" tuşuna basınca bizim için kolay bir şekilde kod bloğunu oluşturuyor. Bu sadece for için değil her şey için geçerlidir.​


Kod:
[CENTER]            for (int i = 0; i<=20; i=i+2)
            {
                
                Console.WriteLine("{0} sayısı çifttir.", i);
                j++;
                Console.WriteLine("{0} adet çift sayı bulunmaktadır", j);
                Console.WriteLine("");
            }[/CENTER]

for döngümüzü tanımladık. İlk değer ataması olarak 0 sayısını atadık. Ve 20'den küçük ve eşit olana kadar dönmesini söyledik. Ama 2 artarak emir verdik. (Çift sayıları bulmak için)


Kod:
[CENTER]Console.WriteLine("{0} sayısı çifttir.", i);[/CENTER]

bu komutta ise i değişkenimizin ilk değeri sıfır olduğu için çift sayı olarak verebiliriz. Ve {0}, yerine gelecek değeri i olarak atadık.

Arkadaşlar​
j++;​
diye bir komut kullandık. Bu nedir diye sorabilirsiniz. İki tane artış değeri kullanmamız gerek bu programda. Çünkü bir tane değişkenimiz​
(i=i+2)​
çift sayıları hesaplarken diğer değişkenimiz olan​
(j++)​
kaç çift sayı bulunduğunu hesaplayacak. Bu yüzden;

for değişkeninin üzerinde j değişkenimizi tanımlıyoruz.

Kod:
[CENTER]int j = 0;[/CENTER]

Kod:
[CENTER]j++;[/CENTER]

komutumuz ile dediğimiz gibi j değişkeni ile kaç çift sayı olduğunu belirliyoruz. j değişkenini arttırıyoruz. Yani i değeri 0 iken, 1 çift sayı bulunduğunu yazacaktır. çünkü çift sayıdan sonra j değerini arttırıyoruz.

Kod:
[CENTER]Console.WriteLine("{0} adet çift sayı bulunmaktadır", j);[/CENTER]

arttırdığımız j değerini çift sayı bulunma yazısına atıyoruz. Böylelikle i değeri 2 artınca yani çift sayı olunca ardından j de artarak çift sayıyı hesaplayacaktır.

Kod:
[CENTER]Console.WriteLine("");[/CENTER]

bu komut ile daha güzel bir görünüm vermek için boşluk bırakıyoruz.​

NOT:​
Console.ReadKey(); komutumuzu döngünün dışında yazıyoruz.

Programımızın Çıktısı​
hWmRlr.png


W6Ggny.png

PnTQaG.png

While Döngüsü​
hWmRlr.png


hWmRlr.png

bHTLqA.jpg


Bu döngümüzde vereceğimiz koşul sağlanıyorsa döner. Eğer koşul yanlış olduğunda durur.

Hemen örneklere geçelim. Daha iyi kavramamız için aynı örnek üzerinden göstereceğim;​

1-)​
0-20 arası çift sayıları while ile ekrana yazdırmayı deneyelim.​

Kullanımı​
hWmRlr.png


Kod:
[CENTER]while(koşul)
{
Komutlar buraya yazılacak
}[/CENTER]

W6Ggny.png

zJKCM7.png


Fark ettiyseniz bu döngünün içinde bir değişken tanımlamayacağız bu yüzden döngünün üstünde tanımlıyoruz.


Kod:
[CENTER]int a = 0;
while(a <= 20)
{
    Console.WriteLine(a);
    a = a + 2;
}[/CENTER]


Algoritmasını beraber çıkaralım.

Kod:
[CENTER]int a =0;[/CENTER]

a adında bir değişken tanımladık.


Kod:
[CENTER]while(a <=20)[/CENTER]

komutu ile a değişkenimizin değeri 20 sayısından küçük ve eşit olana kadar dönmesini söyledik.

Kod:
[CENTER]Console.WriteLine(a);[/CENTER]

ekrana a değişkeninin değerini yazıyoruz.

Kod:
[CENTER]a= a + 2;[/CENTER]

For döngüsündeki 2 artırarak çift sayıları buluyoruz. Burada Console komutunun altında yazmamızın nedeni 0 sayısının çift sayı olduğundan bu değeri saymacaktı. Bu yüzden en son arttırıp ilk değeri de eklemiş olacağız.
Do While
hWmRlr.png


e94nRq.png


Do while döngüsündeki işleyiş mantığı döngü bir kere çalıştırılır eğer koşul doğru ise işlemi yapar. Ama yanlış ise geçer. Ama diğer döngüler de böyle bir şey söz konusu değil. Öncelikle koşulun doğru olmasına bakılır. Bu döngü biraz daha insaflı diyebiliriz. :)

Kullanımı
hWmRlr.png


Kod:
[CENTER][CENTER]do
{

komutlar buraya yazılacak
}

while(koşul);[/CENTER]

W6Ggny.png
p52emo.png
[/CENTER]

1-)​
Bu sefer 1-20'e kadar tek sayıları Do-While Döngüsü ile yazdıralım.​

Kod:
[CENTER]int a = 1;

do
{
Console.WriteLine(a);
a = a + 2;

} while (i < 20);[/CENTER]

Her zamanki gibi değişkenimizi tanımlayalım.

Kod:
[CENTER]int a = 1;[/CENTER]

Ve Do-While kod bloğumuzu​
TAB​
tuşu ile açalım.

Kod:
  [CENTER]do
            {
                
            } while (true);[/CENTER]

Kod:
[CENTER]Console.WriteLine(a);[/CENTER]

a​
değişkenimizin sayısını ekrana yazıyor.

Kod:
[CENTER]a = a + 2;
while (a < 20);[/CENTER]

a​
değişkenimizin başlangıç sayısı​
1​
olduğu için;

1 = 1 + 2 (buradaki sonuç 3 oluyor)


Ve while koşulumuzda a değeri yani 3, 20 değerinden küçük ise devam ediyor. Eğer küçük olmasa idi 1 yazıp bıracaktı.

Program Çıktısı​
hWmRlr.png


AIixaZ.png


Bu konuyu iyice kavramanız için yanlış bir hata yapalım. Bir öyle inceleyelim.


W6Ggny.png


NkmqGq.png

Gördüğünüz gibi kırmızı olarak işaretledi. Büyüktür işareti koyduğumda ekran çıktısı olarak 1 verdi. Dediğim gibi koşul doğru olsa devam ettirecekti. Ama 3 sayısı 20'den büyük olmadığı için koşulun üstündeki komutu yazdı bıraktı. Diğer döngüleri kullanmış olsa idik bu cevabı alamazdık.


ÖZGÜN KONU++

 
Son düzenleme:

bozkurt0607

Katılımcı Üye
30 Tem 2017
517
0
22
ANGARA
eline sağlık böyle buna benzer çokca konu var ama yeterli görsele yer vermissin ve bıraz daha detaya inmissin yararlı olmuş :)
 

HeRTeS

Uzman üye
8 Eyl 2016
1,860
2
Mars
eline sağlık böyle buna benzer çokca konu var ama yeterli görsele yer vermissin ve bıraz daha detaya inmissin yararlı olmuş :)
Teşekkürler.
Eline sağlık, ben genelde böyle kullanıyorum. Böyle de olabilir.





Önce ve sonra arttırmayı da anlatsaydın keşke.
Yorumunuz için Teşekkürler, Fakat ben temel olarak ele aldım. Sizin dediğiniz yöntem biraz daha farklı algoritmalar da kullanılıyor.
Elinize sağlık.

Bu tür konular çok ilgimi çekiyor. :)

Teşekkürler.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.