Döngüler, programlama algoritmalarının temel deyimlerinden bir tanesidir. Bir dizi işlemi bir veya daha fazla kez tekar etmek için döngüler kullanılmaktadır. Bu yazıda C# dili ile for döngüsü kullanımını açıklayıp, for döngüsüne örnekler vereceğiz. Her hangi bir C# editörü ile aşaıdaki kodları kopyalayıp çalıştırabilirsiniz. (Ben Visual Stuio ile for döngüsü kullanımı ve örneklerini hazırladım)
C# for döngüsü yazım kuralı:
1 2 3 4 5 6 |
for (başlangıç; şart; adım) { //yürütülecek kod yada kodlar } |
başlangıç : döngünün hangi sayıdan başlayacağını belirtir.
şart: başlangıç değerindeki değişken belirtilen şartı sağladığı sürece döngü tekrar eder. Döngüden çıkış da şart sağlanmadığında gerçekleşir.
adım: başlangıç değerinin göre artım yada azalımı ifade eder.
C# for Döngüsü Örnekleri
for döngüsü kullanımını anlatan basit, orta ve zor olmak üzere çeşitli zorluk seviyelerine uygun toplam 20 örnek bulunmaktadır.
Örnek 1: Ekranda 10 kez Merhaba Dünya yazdıran Console Örneği
1 2 3 4 5 6 7 8 9 10 11 |
static void Main(string[] args) { for(int i=1;i<=10;i++) { Console.WriteLine(i+"- Merhaba Dünya"); } Console.ReadKey(); } |
Örnek 2: Kullanıcının girdiği metni 10 kez alt alta yazdıran Console örneği
1 2 3 4 5 6 7 8 9 10 11 12 |
static void Main(string[] args) { Console.Write("Metni Gir : "); string metin = Console.ReadLine(); for (int i = 1; i <= 10; i++) { Console.WriteLine(metin); } Console.ReadKey(); } |
Örnek 3 : 0′ dan 10′ a kadar olan sayıların toplamını bulan program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Program { static void Main(string[] args) { int toplam = 0; for (int i = 0; i < 10; i++) { toplam += i; } Console.Write("0 dan 10'a kadar olan sayıların toplamı=" + toplam); Console.ReadKey(); } } |
Örnek 4: Klavyeden girilen bir sayıya kadar tek sayıların ve çift sayıların toplamını bulan program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
class Program { static void Main(string[] args) { int cifttoplam = 0; int tektoplam = 0; int sayi = 0; Console.Write("Bir sayı giriniz: "); sayi = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < = sayi; i++) { if (i % 2 == 0) { cifttoplam += i; } else { tektoplam += i; } } Console.WriteLine(sayi+ " sayısına kadar tek sayıların toplamı: " + tektoplam); Console.WriteLine(sayi + " sayısına kadar çift sayıların toplamı: " + cifttoplam); Console.ReadKey(); } } |
Örnek 5: a dan z ye kadar olan harfleri ekrana yazdıran program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Program { static void Main(string[] args) { char i; for (i = 'a'; i < = 'z'; i++) { Console.WriteLine(i); } Console.ReadKey(); } } |
Örnek 6: Kullanıcının girdiği metni kullanıcının girdiği sayıda ekranda yazdıran Console örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Console.Write("Metni Girin : "); string metin = Console.ReadLine(); Console.Write("Kaç defa yazdırılsın : "); int sayi = Convert.ToInt32(Console.ReadLine()); for(int i=1;i<= sayi;i++) { Console.WriteLine(metin); } Console.ReadKey(); |
Örnek 7: Kullanıcının girdiği 10 sayıdan 50 den küçük olanların adetini bulan ve gösteren Console Örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
static void Main(string[] args) { int sayi, adet=0; for(int i=1;i<=10;i++) { Console.Write(i+".sayıyı Girin : "); sayi = Int32.Parse(Console.ReadLine()); if(sayi<50) { adet++; } } Console.WriteLine("50 den küçük girilen sayı adeti : "+adet); Console.ReadKey(); } |
Örnek 8: Kullanıcının girdiği 5 sayıdan 50′ den büyük olanların toplamını gösteren Console Örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
static void Main(string[] args) { int sayi, toplam = 0; for (int i = 1; i <= 5; i++) { Console.Write(i + ".sayıyı Girin : "); sayi = Int32.Parse(Console.ReadLine()); if (sayi > 50) { toplam+=sayi; } } Console.WriteLine("50 den büyük girilen sayıların toplamı : " + toplam); Console.ReadKey(); } |
Örnek 9: Bilgisayarın rastgele tuttuğu 10 sayıdan çift ve tek olanların sayısını gösteren Console Örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
static void Main(string[] args) { int sayi, tekAdet=0, ciftAdet=0; Random rnd = new Random(); for (int i = 1; i <= 10; i++) { sayi = rnd.Next(1, 100); Console.WriteLine(sayi); if(sayi%2==0) { ciftAdet++; } else { tekAdet++; } } Console.WriteLine("Çift Sayı Adeti : {0}", ciftAdet); Console.WriteLine("Tek Sayı Adeti : {0}",tekAdet); Console.ReadKey(); } |
Örnek 10: Bilgisayar tarafından rastgele tutulan 10 sayıdan 50′ den yukarı olanların ortalamasını bulan Console örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
static void Main(string[] args) { int toplam = 0,sayac=0; Random rnd = new Random(); for(int i=1; i<=10;i++) { int sayi = rnd.Next(1, 100); Console.WriteLine(sayi); if(sayi>50) { toplam += sayi; sayac++; } } Console.WriteLine("50 den büyük sayıların ortalaması :{0} ",(toplam/sayac)); Console.ReadKey(); } |
Örnek 11: C# Console Uygulamasında iç içe For Döngüsü kullanarak piramit oluşturma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Program { static void Main(string[] args) { for (int i = 1; i < 20; i++) { for (int j = i; j < 20; j++) { Console.Write(" "); } for (int k = 1; k <= i; k++) { Console.Write("*"); Console.Write(" "); } Console.WriteLine(); } Console.ReadKey(); } } |
Örnek 12: C# console uygulaması ile Tabanı ve kuvveti girilen işlemin sonucu yazdıran program örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/* Taban ve Kuvveti girilen sayının değerini hesaplama Örn: taban:2 üs:5 girildiğinde sonuc=32 yazıdıran program. */ int taban, us, sonuc = 1; Console.Write("Taban sayısını giriniz:"); taban = Convert.ToInt32(Console.ReadLine()); Console.Write("Kuvvet sayısını giriniz:"); us = Convert.ToInt32(Console.ReadLine()); for (int i = 1; i <= us; i++) { sonuc = sonuc * taban; } Console.WriteLine("Tabanı {0} ve kuvveti {1} olan sayının değeri={2}",taban,us,sonuc); Console.ReadLine(); |
Örnek 13: C# Console Application ile yapılmış, içerisinde isimler bulunan string bir diziyi en son elemandan itibaren ekrana yazdıran uygulama örneği
1 2 3 4 5 6 7 8 9 |
string[] strDizi = { "Ahmet", "Hayri", "Recep", "Hüseyin","Seda" }; int son = strDizi.Length - 1; for (int i = son; i >= 0; --i) { Console.WriteLine(strDizi[i]); } Console.ReadKey(); |
Örnek 14: C# ta 10 elemanlı dizi içine kulanıcının 10tane şehir eklemesini sağlayan Girilen baş harfe göre şehirleri listeleyen program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
static void Main(string[] args) { string[] sehir = new string[3]; for (int i = 0; i < sehir.Length;i++ ) { Console.Write("Şehir Adını girin: "); sehir[i] = Console.ReadLine(); } Console.Write("Listelemek istediğiniz şehrin baş harfini girin: "); char harf=Convert.ToChar(Console.ReadLine()); for(int i=0;i<sehir.Length;i++) { string dizisehir=sehir[i]; if(dizisehir[0]==harf) { Console.WriteLine(dizisehir); } } Console.ReadKey(); } |
Örnek 15: 1-100 arasındaki sayıların kullanıcının girdiği sayıya tam olarak bölünenleri ekrana yazdırma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//1-100 arasındaki sayıların kullanıcının girdiği sayıya tam olarak bölünenleri ekrana yazdırma //örnek kullanıcı 25 girdi 25,50,75,100 tam olarak bölünür. //örnek kullanıcı 3 girdi 3,6,9,......93,96,99 int sayi; Console.Write("Bölen sayıyı giriniz...:"); sayi = Convert.ToInt32(Console.ReadLine()); for (int i = 1; i <= 100; i++) { if (i%sayi==0) { Console.WriteLine("{0} sayısı kalansız bölünür",i); } } Console.ReadKey(); |
Örnek 16: C# Console Üçgen Oluşturma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
static void Main(string[] args) { int kenarUzunlugu; string nesne; Console.Write("Uzunluk : "); kenarUzunlugu = Convert.ToInt32(Console.ReadLine()); Console.Write("Ekrana yazılacak harf yada nesne: "); nesne = Console.ReadLine(); int ortaNokta = kenarUzunlugu - 1; int taban = kenarUzunlugu * 2 - 1; for (int i = 0; i < kenarUzunlugu; i++) { for (int k = 0; k < taban; k++) { if ((i + k == ortaNokta || k - i == ortaNokta)) { Console.Write(nesne); } else if ((i + k >= ortaNokta && k - i <= ortaNokta)) { Console.Write("*"); } else if (i == ortaNokta) Console.Write("*"); else Console.Write(" "); } Console.WriteLine(); } Console.ReadKey(); } |
Örnek 17: Dizilere dışardan veri girişi ve veri okunması
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class Program { static void Main(string[] args) { // dizinin elemanlarını dısardan okutmak. int[] a = new int[5]; for (int i = 0; i < 5; i++) { Console.Write("a[{0}] degeri = ", i); a[i] = Convert.ToInt32(Console.ReadLine()); } for (int i = 0; i < 5; i++) { Console.WriteLine("a'nın {0} degeri ={1}", i, a[i]); } Console.ReadKey(); } } |
Örnek 18: Rastgele sayılar ile diziyi doldurma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Program { static void Main(string[] args) { int a = 0; Console.Write("Dizimiz Kaç Elemanlı Olsun ="); a = Convert.ToInt32(Console.ReadLine()); int[] sayilar = new int[a]; Random rnd = new Random(); for (int i = 0; i < a; i++) { sayilar[i] = rnd.Next(1, 100); ; for (int i = 1; i <= sayilar.Length; i++) { Console.WriteLine("Dizinin {0} Elemanını {1} ", i, sayilar[i - 1]); } Console.ReadLine() } } |
Örnek 19: Klavyeden girilen metni tersten yazdıran C# Console Örneği
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class Program { static void Main(string[] args) { Console.Write("Herhangi Bir Yazı Giriniz : "); string yazi = Console.ReadLine(); int yaziuzunlugu = yazi.Length; for (int i = yaziuzunlugu; i > 0; i--) { Console.Write(yazi.Substring(i - 1, 1)); } Console.ReadKey(); } } |
Örnek 20: Kullanıcıya kaç tane sayıyı toplayacağını sorup, kullanıcının toplayacağı kadar sayıyı kullanıcıya tek tek soran ve kullanıcının yazdığı bu sayıların toplamını ekrana yazan program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class Program { static void Main(string[] args) { int sayi, adet = 0; int toplam = 0; Console.Write("Kaç tane sayı toplayacaksın= "); adet = Convert.ToInt32(Console.ReadLine()); for (int i = 1; i <= adet; i++) { Console.Write(i + ". sayıyı giriniz= "); sayi = int.Parse(Console.ReadLine()); toplam = toplam + i; } Console.WriteLine("Girdiğiniz sayıların toplamı= " + toplam); Console.ReadKey(); } } |
[…] döngü kavramını açıklarken for döngüsü kullanımını bir önceki yazıda açıklamıştım. Fakat burada özet olması için biraz açıklayıp […]