C# Döngüler

C# For Döngüsü

C# döngüler, Programlama dilinde döngüler belirtilen komut satırlarının tekrar tekrar çalıştırılmasını sağlayan yapılardır. For döngüsü genellikle üç ifade ile kullanılır. Bu ifadelerden ilkinde döngü değişkeni için bir başlangıç değeri verilir. İkinci ifadede döngü değişkenin değerine bağlı bir koşul belirlenir bu koşul sağlandığı sürece döngü içerisindeki belirtilen işlemleri tekrar eder. Üçüncü ifade de çoğunlukla döngü değişkeninin artış yada azalış miktarı için kullanılır.

C# for döngüsü

C# for döngüsü

for (ifade1;kosul;ifade2) //;Kullanılmaz!
komut;

//veya

1
2
3
4
5
6
for (ifade1;kosul;ifade2) //;Kullanılmaz!
{
   komut1;
   komut2;
   
}
1
2
3
4
for (int i = 1; i <= 5; i++)
{
    Console.WriteLine(i);
}

Yukarıdaki döngüde öncelikli olarak i değişkeninin başlangıç değeri olan 1 kurulur. Daha sonra koşul operatörü olan i<=5 ifadesi çalışır. Bu ifadenin sonucu eğer Trueise döndü satırları çalıştırılır. Döngü içeriği bittikten sonra i++ arttırma operatörü çalışır ve i değişkenin değeri 2 olur. Bu değer tekrar i<=5 için çalıştırılır. Ve sonuçTrue olduğu sürece döngü devam eder. i değişken değeri bu örnek için 6 olduğu durum da i<=5 ifadesinin sonucu False olur ve döngü kodu işletilmeden döngü sonlandırılır.

HATIRLATMA

for döngüsünün parantezleri içindeki ” for (int i=0;i<5;i++) ” iki ifade ve bir koşulun istenirse bir tanesi, istenirse bazıları, istenirse de tamamı boş bırakılabilir; ancak noktalı virgüller mutlaka yazılmalıdır. For(;;)//Sonsuz döngü
Tahmin edebileceğiniz gibi for döngüsünün içinde veya “for (int i=0;i<5;i++) ” kısmında tanımlanan herhangi bir değişken döngünün dışında kullanılamaz. Bu bütün döngüler ve koşul yapıları için geçerlidir.

C# Döngüler –  C# For Döngüsü ÖRNEK – 1
1′den 100′e kadar olan sayıların toplamını bulup sonucu ekranda gösteren C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK – 2
Girilen iki sayını arasındaki sayıların toplamını bulan C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK – 3
İstenilen Sayıyı 10 kez yazdıran C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK – 4
0-100 arasındaki tek sayıları yazdıran C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK – 5
1 ile 100 Arasındaki Sayıların Toplamının Ortalaması

C# Döngüler –  C# For Döngüsü ÖRNEK – 6
100 ile 200 Arasındaki çift sayıların toplamının ortalaması bulan C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK –7
A’dan Z’ye kadar olan karakterleri ekrana yazdıran C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK – 8
İstenilen sayı kadar girilen sayıların ortalamasını C# programını yazın.

C# Döngüler –  C# For Döngüsü ÖRNEK – 9
1 ile 100 arasındaki tek ve çift sayıların toplamını bulup sonucu ekranda gösteren programın kodlarını yazalım.

C# Döngüler –  C# For Döngüsü ÖRNEK – 10
1 ile 100 arasındaki tek ve çift sayıların toplamını bulup sonucu ekranda gösteren programın kodlarını yazalım. (9. Örnekteki soruyu if kullanarak çözünüz.)

ÖRNEK – 1 ÇÖZÜMÜ

1
2
3
4
5
6
int toplam = 0;
 for (int i = 0; i <= 1000; i++)
 {
 toplam += i;
 }
 Console.WriteLine("Toplam = {0}", toplam);

ÖRNEK – 2 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
int toplam = 0, a, b;
 
Console.WriteLine("bir sayi girin");
 a = Convert.ToInt32(Console.ReadLine());
 Console.WriteLine("bir sayi girin");
 b = Convert.ToInt32(Console.ReadLine());
 for (int i = a; i <= b; i++)
 {
 toplam += i;
 }
 Console.WriteLine("Toplam : {0}", toplam);

ÖRNEK – 3 ÇÖZÜMÜ

1
2
3
4
for (int i = 0; i<= 10; i++)
{
Console.WriteLine("istediğiniz yazıyı yazabilirsiniz...\n");
}

ÖRNEK – 4 ÇÖZÜMÜ

1
2
3
4
for (int i = 1; i <= 100; i += 2)
{
Console.WriteLine("{0}.sayı", i);
}

ÖRNEK – 5 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
int i;
double toplam = 0;
for (i = 1; i <= 100; i++)
{
toplam += i;
}
toplam /= 1000;
Console.WriteLine(toplam);

ÖRNEK – 6 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
int i;
double toplam = 0;
for (i = 100; i <= 200; i += 2)
{
toplam += i;
Console.WriteLine(toplam);
}
toplam /= i;
Console.WriteLine(toplam);

ÖRNEK – 7 ÇÖZÜMÜ

1
2
3
4
5
char i;
for (i = 'a'; i <= 'z'; i++)
{
Console.WriteLine(i);
}

ÖRNEK – 8 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int i, sayi, deger;
double toplam = 0;
Console.WriteLine("kaç sayi gireceksiniz");
deger = Convert.ToInt32(Console.ReadLine());
for (i = 1; i <= deger; i++)
{
Console.WriteLine(i + ".sayiyi giriniz...");
sayi = Convert.ToInt32(Console.ReadLine());
toplam += sayi;
 
}
toplam /= deger;
 
Console.WriteLine("ortalama : " + toplam);

ÖRNEK – 9 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
int tektoplam = 0, cifttoplam = 0;
 
for (int i = 1, j = 2; i <= 100 , j <= 100; i += 2, j += 2)
{
tektoplam += i;
//tektoplam değişkenine i değerini ekle
cifttoplam += j;
//cifttoplam değişkenine j değerini ekle
}
Console.WriteLine("Tek Sayıların Toplamı = {0} ", tektoplam);
Console.WriteLine("Çift Sayıların Toplamı = {0}", cifttoplam);

ÖRNEK – 10 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
12
13
int tektoplam = 0, cifttoplam = 0;
 
for (int i = 0; i <= 100; i++)
{
if (i % 2 == 1) tektoplam += i;
 
else cifttoplam += i;
 
}
 
Console.WriteLine("Tek Sayıların Toplamı = {0}", tektoplam);
 
Console.WriteLine("Çift Sayıların Toplamı = {0}", cifttoplam);

C# While Döngüsü

C# While döngüsü, komut ya da komutların bir koşul sağlandığı sürece çalıştırılmasını sağlar. For döngüsünde döngü sayısı belli iken While döngüsünde döngü sayısı belli değildir. Döngü belirli bir koşul sağlandığı sürece deva eder.

C# while döngüsü

C# while döngüsü

1
2
while(koşul)
 komut;

veya

1
2
3
4
5
while(koşul)
 {
 komut1;
 komut2;
 }

C# While döngüsü öncelikle (koşul) ifadesi kontrol edilir. Eğer ifade True sonucunu döndürüyorsa döngü blokları içerisindeki komutlar çalıştırılır. Ve son komuttan sonra tekrar While koşulu kontrol edilir. Bu koşul False olana kadar döngü komutları işletilmeye devam eder.

1
2
3
4
5
6
int say = 1;
 while (say <= 10) // ; Kullanılmaz!
 {
 Console.WriteLine(say);
 say++;
 }

Yukarıdaki örnekte say adlı değişkenin değeri 10 dan küçük olduğu sürece koşul ifadesi olan say<=10 değeri True dönmektedir. Ne zamanki say değeri 11 olur o zaman say<=10 ifadesinin sonucu False olur ve döngü sonlanır.

C# while döngüsü ÖRNEK – 1
1 ile 10 arasındaki tek sayıları ekrana alt alta While döngüsü ile yazdıran C# programını yazınız.

C# while döngüsü ÖRNEK – 2
Kullanıcı tarafından girilen bir sayının kaç basamaklı olduğunu bulup ekrana yazdıran C# programını While döngüsü kullanarak yazınız.

C# while döngüsü ÖRNEK – 3
1 ile 10 arasındaki tek sayıları ekrana alt alta While döngüsü ile yazdıran C# programını yazınız.

C# while döngüsü ÖRNEK – 4
Kullanıcıdan devam etmek istiyor musunuz sorusuna alınan yanıta göre sayı alıp alınan sayıların toplamını bulan programı yazınız. (Evet “E” veya Hayır “H”)

C# while döngüsü ÖRNEK – 1 ÇÖZÜMÜ

1
2
3
int say = 1;
 while (say <= 10) { Console.WriteLine(say);
say += 2; // artış miktarı 2 yapılarak tek sayılar elde edilebilir }

C# while döngüsü ÖRNEK – 2 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
int sayi = Convert.ToInt32(Console.ReadLine());
int basamak = 0;
while (sayi > 0)
 {
 basamak++;
 sayi = sayi / 10;
 }
 
Console.WriteLine("Girdiğiniz sayı " + basamak.ToString() + "basamaklıdır.");

C# while döngüsü ÖRNEK – 3 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
int sayi = 0, toplam = 0; // değişkenlerin başlangıç değeri 0 olarak ayarlandı
 while (sayi % 2 == 0) // koşulda sayi değişkeninin çift olup olmadıgına bakılıyor
 {
 toplam = toplam + sayi;
 //sayi değikeninin değeri toplama ekleniyor
 Console.Write("Bir sayı giriniz : ");
 sayi = Convert.ToInt16(Console.ReadLine());
 }
 Console.WriteLine("Girilen Çift Sayıların Toplamı = " + toplam);
 // döngü sonrası toplam ekrana yazdırılıyor

C# while döngüsü ÖRNEK – 4 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int toplam = 0, sayac = 1;
 char cevap = 'e';
 
while(cevap=='e')
 {
 Console.WriteLine("{0}. Sayıyı girin.",sayac);
 toplam += Convert.ToInt32(Console.ReadLine());
 
Console.WriteLine("Devam istiyor musu?(e,h)");
 cevap = Convert.ToChar(Console.ReadLine());
 
sayac++;
 }
 
Console.WriteLine("Sonuç={0}", toplam);
 Console.ReadLine();

C# Do While Döngüsü

C# do While döngüsü, şimdiye kadar gördüğümüz döngülerde önce koşula bakılıyor, eğer koşul sağlanırsa döngü içindeki komutlar çalıştırılıyordu. Ancak bazen döngüdeki komutların koşul sağlanmasa da en az bir kez çalıştırılmasını isteyebiliriz. Bu gibi durumlar için C#’ta do while döngüsü vardır.

1
2
3
do
 komut;
 while(koşul)

veya

1
2
3
4
5
6
do
 {
 komut1;
 komut2;
 .
 }while(koşul)

Yukarıdaki C# Do While döngüsünde komut1, komut2 gibi komutlar en az bir kez çalıştırılır. Döngü sonunda gelindiğinde (koşul) ifadesi çalıştırılır. Eğer koşul ifadesi sonucunda değer True olarak dönerse döngü çalışmaya devam eder. Eğer koşul False olarak dönerse döngü sonlandırılır.

C# do while döngüsü ÖRNEK – 1
Do while döngüsünü kullanarak 1 ile 10 arasındaki sayıları ekrana alt alta yazdıran C# program kodlarını yazınız.

C# do while döngüsü ÖRNEK – 1 ÇÖZÜMÜ

1
2
3
4
5
6
int say = 1;
 do
 {
 Console.WriteLine(say);
 say++;
 } while (say <= 10);

Döngülerde kullanılan anahtar sözcükler

Break anahtar kelimesi

Break komutu bütün döngülerden çıkmak için kullanılabilir. Break komutuna gelindiğinde döngü sonlanır ve yazılım döngüden sonraki kod bloğundan devam eder

1
2
3
4
5
6
for (char a; ; ) )// Sonsuz döngü…
{
a = Convert.ToChar(Console.ReadLine());
if (a == 'q'
break;
}
Continue anahtar kelimesi

break sözcüğüne benzer. Ancak break sözcüğünden farklı olarak program continue’u gördüğünde döngüden çıkmaz, sadece döngünün o anki iterasyonu sonlanır. Ve döngü bir sonraki iterasyonu yapmak üzere tekrar başlatılır. (Döngü devam koşulu da True ise.)

1
2
3
4
5
6
for (int a = 0; a < 51; a++)
{
if (a % 2 == 1)
continue;
Console.WriteLine(a);
}
Goto anahtar kelimesi

Nesneye yönelik programlamada pek hoş görülmese de kullanabileceğiniz başka bir komut “goto”dur. Aslında eskiden BASIC gibi dillerde her satırın bir numarası vardı ve bu sözcük satırlar arasında dolaşmayı sağlıyordu. Ancak böyle bir yöntem nesne yönelimli programlamaya terstir. O yüzden çok fazla kullanmamanız tavsiye edilir.

1
2
3
4
5
6
7
birinci:
Console.WriteLine("Birinci bölüm");
goto ucuncu;
ikinci:
Console.WriteLine("İkinci bölüm");
ucuncu:
Console.WriteLine("Üçüncü bölüm");

Random (Rastgele Sayı)

C#’ta program yazarken (özellikle oyun programlarında) rastgele değerlere ihtiyaç duyabiliriz. C#’ta program yazarken (özellikle oyun programlarında) rastgele değerlere ihtiyaç duyabiliriz.

1
2
3
4
5
6
Random rnd=new Random();
 
int RastgeleSayi1=rnd.Next(10,20);
int RastgeleSayi2=rnd.Next(50);
int RastgeleSayi3=rnd.Next();
double RastgeleSayi4=rnd.NextDouble();

Birinci örnekte: 10 ile 20 arasında int türden rastgele bir sayı üretilir, 10 dâhil ancak 20 dâhil değildir.
İkinci örnekte: 0 ile 50 arasında int türden rastgele bir sayı üretilir, 0 dâhil ancak 50 dâhil değildir.
Üçüncü örnek: int türden pozitif bir sayı üretilir.
Dördüncü örnekte: double türden 0.0 ile 1 arasında rastgele bir sayı üretilir.

ÖRNEK – 1

Kullanıcıdan alınan 5 adet sayının kaç tanesinin 0 ile 100 arasında olduğunu bulup ekrana yazdıran C# programını yazınız.

ÖRNEK – 2

Ekran çarpım tablosunu yazan C# programını yazınız. (Örnek çıktı: 5 x 2 = 10)

ÖRNEK – 3

Yandaki şekilde çıktı verecek olan C# programını yazınız.

ÖRNEK – 4

Yandaki şekilde çıktı verecek olan C# programını yazınız.

ÖRNEK – 5

Bilgisayar tarafından belirlenen rastgele bir sayısı bulacağınız şekilse sizi yönlendiren C# oyun programını yazınız.

PROJE-1

Kullanıcıdan alınan 0 ile 100 (sınırlar dâhil 0 ve 100 kabul edilir) arasındaki 10 sayının en büyüğünü, en küçüğünü bulup ve tüm sayıların ortalamasını hesaplayan C# programı yazınız.

PROJE-2

Sizin belirlediğiniz bir sayısı bilgisayar bulacak şekilse yönlendirme yapan C# programını yazınız. (Sayısı siz belirleyeceksiniz. Yazılım tahminde bulunacak ve siz klavyeden A(Aşağı) – Y(Yukarı) ile yönlendirme yapacaksınız. T(Tamam) tuşuna basılında program sonlanacak ve kaçıncı defa da bulunduğu ekrana yazılacak.)

ÖRNEK – 1 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
int adet, i, sayi,adet = 0;
for (i = 1; i <= 5; i++) {
Console.Write("Bir sayı yazınız ");
sayi = Convert.ToInt16(Console.ReadLine());
if ((sayi &amp;gt;= 0) &amp;amp;&amp;amp; (sayi <= 100))
adet++;
}
Console.Write("Yazdığınız sayılardan {0} tanesi 0-100 arasındadır.", adet);
Console.ReadKey();

ÖRNEK – 2 ÇÖZÜMÜ

1
2
3
4
5
6
7
int i, j;
 
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10; j++)
{ Console.WriteLine("{0}x{1}={2}", i, j, i*j); }
}

ÖRNEK – 3 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
string birlesim = "";
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= i; j++)
{
birlesim += j.ToString();
}
Console.Write(birlesim);
birlesim="";
Console.Write("\n");
}

ÖRNEK – 4 ÇÖZÜMÜ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= i; j++) Console.Write("*");
Console.Write("\n"); }
ÖRNEK – 5 ÇÖZÜMÜ
Console.WriteLine("Aklımdaki sayıyı bulmak için 0 ile 100 arasında bir sayı giriniz"); int sayi=Convert.ToInt32(Console.ReadLine()); int defa = 0;Random rnd = new Random(); int aklimdakiSayi = rnd.Next(0, 100); do { defa++; if (sayi &amp;gt; aklimdakiSayi)
{
Console.WriteLine("Daha küçük sayı girin");
sayi = Convert.ToInt32(Console.ReadLine());
}
else if (sayi < aklimdakiSayi)
{
Console.WriteLine("Daha büyük bir girin");
sayi = Convert.ToInt32(Console.ReadLine());
}
} while (sayi != aklimdakiSayi);
Console.WriteLine("Tebrikler. Sayıyı {0}. Defa da buldunuz.", defa);

Böylece bir dersimizin daha sonuna geldik. Umarım faydalı bir yazı olmuştur.
Dilerseniz bir önceki yazımız olan Akış Kontrol Mekanizmaları (if else Switch case)konusunu inceleyebilirsiniz.
Bir sonraki yazımız olan Diziler konusunda görüşmek üzere…

Kodyaz.NET Ana Sayfasına Dön