C# Break ve Continue Kullanımı ve Örnekleri
C# programlama dilinde döngüler, belirli işlemlerin tekrar tekrar gerçekleştirilmesini sağlayan kontrol yapılarıdır. For, while ve do-while döngüleri sayesinde aynı komutları yeniden yazmadan birçok kez çalıştırabiliriz.
Ancak bazı durumlarda döngünün normal çalışma akışını değiştirmemiz gerekebilir. Örneğin aradığımız sayı bulunduğunda döngüyü sonlandırmak veya belirli bir değeri işleme almadan sonraki tekrara geçmek isteyebiliriz. Bu tür işlemler için break ve continue komutları kullanılır.
1. C# BREAK VE CONTINUE NEDİR?
Break ve continue, döngülerin çalışma akışını kontrol etmek için kullanılan komutlardır. Her iki komut da döngünün normal ilerleyişini değiştirir. Ancak görevleri birbirinden farklıdır.
- break: İçerisinde bulunduğu en yakın döngüyü tamamen sonlandırır.
- continue: Döngünün o anki tekrarında kalan işlemleri atlayarak sonraki tekrara geçilmesini sağlar.
Break komutu for, while ve do-while döngülerinin yanı sıra switch-case yapısında da kullanılır. Continue komutu ise döngülerde kullanılır.
2. C# BREAK KOMUTU NEDİR?
Break komutu, bir döngünün belirli bir koşul gerçekleştiğinde sona erdirilmesini sağlar. Break çalıştırıldığında döngünün kalan tekrarları gerçekleştirilmez ve program döngüden sonraki komutlarla devam eder.
Break genellikle if koşuluyla birlikte kullanılır.
BREAK KOMUTUNUN SÖZ DİZİMİ
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
break;
}
Console.WriteLine(i);
}
Bu örnekte döngü 1'den 10'a kadar çalışacak şekilde tanımlanmıştır. Ancak sayaç 5 olduğunda break komutu çalışır ve döngü sona erer.
Ekran çıktısı:
1
2
3
4
Önemli: Break komutu yalnızca bulunduğu döngüyü sonlandırır. Programın tamamını kapatmaz.
3. FOR DÖNGÜSÜNDE BREAK KULLANIMI
For döngüsünde break komutu, sayaç belirli bir değere ulaştığında döngüyü durdurmak için kullanılabilir.
for (int i = 1; i <= 100; i++)
{
Console.WriteLine(i);
if (i == 10)
{
break;
}
}
Console.WriteLine("Döngü sona erdi.");
Bu uygulamada döngü 100'e kadar çalışabilecek şekilde tanımlanmıştır. Ancak sayaç 10 olduğunda break komutu çalışır.
Sonuç olarak ekrana 1'den 10'a kadar olan sayılar ve ardından "Döngü sona erdi." mesajı yazdırılır.
4. WHILE DÖNGÜSÜNDE BREAK KULLANIMI
While döngüsünde break komutu, özellikle kullanıcıdan alınan bir bilgiye göre döngünün sonlandırılması gereken durumlarda kullanışlıdır.
while (true)
{
Console.Write("Çıkmak için 0 giriniz: ");
string giris = Console.ReadLine();
if (giris == "0")
{
break;
}
Console.WriteLine("Döngü devam ediyor.");
}
Console.WriteLine("Program sona erdi.");
Bu örnekte while koşulu sürekli true olduğu için döngü kendiliğinden sona ermez. Kullanıcı 0 girdiğinde break komutu çalışır ve döngüden çıkılır.
5. DO WHILE DÖNGÜSÜNDE BREAK KULLANIMI
Break komutu do-while döngülerinde de kullanılabilir. Böylece döngü içerisindeki işlemler gerçekleştirilirken belirli bir koşul sağlandığında döngü sonlandırılabilir.
int sayi = 1;
do
{
Console.WriteLine(sayi);
if (sayi == 5)
{
break;
}
sayi++;
}
while (sayi <= 10);
Bu örnekte ekrana 1'den 5'e kadar olan sayılar yazdırılır. Sayaç 5 olduğunda break komutu çalışır ve döngü sona erer.
6. C# CONTINUE KOMUTU NEDİR?
Continue komutu, döngünün mevcut tekrarında kalan komutların atlanmasını sağlar. Ancak break komutundan farklı olarak döngüyü tamamen sonlandırmaz.
Continue çalıştırıldığında program döngünün sonraki tekrarına geçmek üzere ilerler.
CONTINUE KOMUTUNUN SÖZ DİZİMİ
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
continue;
}
Console.WriteLine(i);
}
Bu örnekte sayaç 5 olduğunda continue komutu çalışır. Böylece 5 sayısı ekrana yazdırılmaz, ancak döngü çalışmaya devam eder.
Ekran çıktısı:
1
2
3
4
6
7
8
9
10
Önemli: Continue komutu döngüyü sonlandırmaz. Yalnızca mevcut tekrarda kendisinden sonra gelen komutların çalıştırılmasını engeller.
7. FOR DÖNGÜSÜNDE CONTINUE KULLANIMI
For döngüsünde continue kullanılarak belirli değerlere ait işlemler atlanabilir.
Örneğin 1'den 20'ye kadar olan sayılardan yalnızca tek sayıları ekrana yazdıralım.
for (int i = 1; i <= 20; i++)
{
if (i % 2 == 0)
{
continue;
}
Console.WriteLine(i);
}
Bu uygulamada sayının 2 ile bölümünden kalan sıfırsa continue çalışır. Böylece çift sayılar atlanır ve yalnızca tek sayılar görüntülenir.
8. WHILE DÖNGÜSÜNDE CONTINUE KULLANIMI
While döngüsünde continue kullanılırken sayaç değişkeninin doğru şekilde güncellenmesi önemlidir.
int sayi = 0;
while (sayi < 10)
{
sayi++;
if (sayi == 5)
{
continue;
}
Console.WriteLine(sayi);
}
Bu örnekte sayaç önce artırılır, ardından koşul kontrol edilir. Sayaç 5 olduğunda continue çalışır ve 5 sayısı ekrana yazdırılmaz.
Diğer sayılar normal şekilde görüntülenir.
Dikkat: Sayaç artırma işlemi continue komutundan sonra yapılırsa ve continue bu işlemi atlarsa döngü sonsuz tekrara girebilir.
9. DO WHILE DÖNGÜSÜNDE CONTINUE KULLANIMI
Do-while döngüsünde continue komutu çalıştığında program döngünün sonundaki koşul kontrolüne geçer.
int sayi = 0;
do
{
sayi++;
if (sayi == 3)
{
continue;
}
Console.WriteLine(sayi);
}
while (sayi < 5);
Bu örnekte ekrana 1, 2, 4 ve 5 sayıları yazdırılır. Sayaç 3 olduğunda continue komutu çalıştığı için yazdırma işlemi atlanır.
10. BREAK VE CONTINUE ARASINDAKİ FARKLAR
Break ve continue komutları döngünün çalışma akışını değiştirir. Ancak farklı amaçlarla kullanılırlar.
| Özellik |
BREAK |
CONTINUE |
| Görevi |
Döngüyü sonlandırır |
Mevcut tekrarı atlar |
| Döngü devam eder mi? |
Hayır |
Koşul sağlanıyorsa evet |
| Sonraki tekrarlar |
Çalıştırılmaz |
Çalıştırılabilir |
| For döngüsünde |
Kullanılır |
Kullanılır |
| While döngüsünde |
Kullanılır |
Kullanılır |
| Do-while döngüsünde |
Kullanılır |
Kullanılır |
| Switch-case yapısında |
Kullanılır |
Tek başına switch'ten çıkmak için kullanılmaz |
Kısaca: Break döngüyü bitirir, continue ise yalnızca o anki tekrarda kalan işlemleri atlar.
11. UYGULAMA 1: BELİRLİ BİR SAYIYA ULAŞINCA DÖNGÜYÜ DURDURMA
Kullanıcıdan bir sayı alarak 1'den 100'e kadar ilerleyen döngüyü belirtilen sayıya ulaştığında durduralım.
Console.Write("1 ile 100 arasında bir sayı giriniz: ");
int hedef = Convert.ToInt32(Console.ReadLine());
if (hedef >= 1 && hedef <= 100)
{
for (int i = 1; i <= 100; i++)
{
Console.WriteLine(i);
if (i == hedef)
{
Console.WriteLine("Hedef sayıya ulaşıldı.");
break;
}
}
}
else
{
Console.WriteLine("Geçersiz sayı girdiniz.");
}
Açıklama: Döngü 1'den başlar ve kullanıcı tarafından belirlenen hedef sayıya ulaşana kadar çalışır. Hedefe ulaşıldığında break komutu döngüyü sonlandırır.
Örnek: Kullanıcı 7 girerse ekrana 1'den 7'ye kadar sayılar yazdırılır ve döngü sona erer.
12. UYGULAMA 2: 3'E BÖLÜNEN SAYILARI ATLAMA
1'den 30'a kadar olan sayıları ekrana yazdıralım. Ancak 3'e tam bölünen sayıları continue komutuyla atlayalım.
for (int i = 1; i <= 30; i++)
{
if (i % 3 == 0)
{
continue;
}
Console.WriteLine(i);
}
Açıklama: Sayının 3 ile bölümünden kalan sıfır olduğunda continue komutu çalışır. Böylece 3, 6, 9, 12 gibi sayılar ekrana yazdırılmaz.
Bu uygulamada mod operatörü ve continue komutu birlikte kullanılmıştır.
13. UYGULAMA 3: NEGATİF SAYILARI TOPLAMA DAHİL ETMEME
Kullanıcıdan 5 sayı alarak yalnızca sıfır ve pozitif sayıların toplamını hesaplayan bir uygulama hazırlayalım. Negatif sayılar continue komutuyla atlanacaktır.
int toplam = 0;
for (int i = 1; i <= 5; i++)
{
Console.Write(i + ". sayıyı giriniz: ");
int sayi = Convert.ToInt32(Console.ReadLine());
if (sayi < 0)
{
Console.WriteLine("Negatif sayı atlandı.");
continue;
}
toplam += sayi;
}
Console.WriteLine("Toplam: " + toplam);
Açıklama: Program kullanıcıdan 5 sayı ister. Girilen sayı negatifse continue komutu çalışır ve toplama işlemi atlanır.
Sıfır veya pozitif sayı girildiğinde sayı toplam değişkenine eklenir.
Örnek: Kullanıcı 10, -5, 20, -3 ve 15 sayılarını girerse toplam 45 olur.
14. UYGULAMA 4: SAYI TAHMİN OYUNUNDA ÇIKIŞ SEÇENEĞİ
Bilgisayarın tuttuğu sayıyı tahmin etmeye çalıştığımız bir oyun geliştirelim. Kullanıcı 0 girerse break komutuyla oyundan çıkabilsin.
Random rastgele = new Random();
int tutulanSayi = rastgele.Next(1, 51);
int deneme = 0;
Console.WriteLine("1 ile 50 arasında bir sayı tuttum.");
Console.WriteLine("Oyundan çıkmak için 0 giriniz.");
while (true)
{
Console.Write("Tahmininiz: ");
int tahmin = Convert.ToInt32(Console.ReadLine());
if (tahmin == 0)
{
Console.WriteLine("Oyundan çıkıldı.");
break;
}
if (tahmin < 1 || tahmin > 50)
{
Console.WriteLine("1 ile 50 arasında bir sayı giriniz.");
continue;
}
deneme++;
if (tahmin == tutulanSayi)
{
Console.WriteLine("Tebrikler! Doğru tahmin.");
Console.WriteLine("Deneme sayısı: " + deneme);
break;
}
else if (tahmin > tutulanSayi)
{
Console.WriteLine("Daha küçük bir sayı giriniz.");
}
else
{
Console.WriteLine("Daha büyük bir sayı giriniz.");
}
}
Açıklama: Program while(true) ile çalışmaya başlar. Kullanıcı doğru sayıyı bulduğunda veya 0 girerek çıkmak istediğinde break komutu çalışır.
Geçersiz aralıkta bir sayı girildiğinde continue komutu kullanılarak tahmin değerlendirmesi atlanır.
Bu uygulamada break ve continue komutları birlikte kullanılmıştır.
15. UYGULAMA 5: ŞİFRE GİRİŞİNDE DENEME SINIRI
Kullanıcıya en fazla 3 şifre deneme hakkı tanıyan bir Console uygulaması hazırlayalım. Şifre doğru girildiğinde break komutuyla döngü sona ersin.
string dogruSifre = "12345";
bool girisBasarili = false;
for (int i = 1; i <= 3; i++)
{
Console.Write("Şifrenizi giriniz: ");
string sifre = Console.ReadLine();
if (sifre == dogruSifre)
{
girisBasarili = true;
break;
}
Console.WriteLine("Hatalı şifre.");
Console.WriteLine("Kalan hak: " + (3 - i));
}
if (girisBasarili)
{
Console.WriteLine("Giriş başarılı.");
}
else
{
Console.WriteLine("Deneme hakkınız doldu.");
}
Açıklama: For döngüsü en fazla 3 kez çalışacak şekilde tanımlanmıştır. Kullanıcı doğru şifreyi girerse girisBasarili değişkeni true yapılır ve break komutuyla döngü sona erer.
Üç denemenin tamamı başarısız olursa kullanıcıya deneme hakkının dolduğu bildirilir.
Önemli: Bu uygulama eğitim amaçlıdır. Gerçek sistemlerde şifreler kaynak kod içerisinde açık şekilde tutulmamalıdır.
16. İÇ İÇE DÖNGÜLERDE BREAK VE CONTINUE KULLANIMI
İç içe döngülerde break ve continue komutları, bulundukları en yakın döngü üzerinde etkili olur.
Örneğin iç döngüde kullanılan break komutu dış döngüyü sonlandırmaz.
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 5; j++)
{
if (j == 3)
{
break;
}
Console.WriteLine("i = " + i + " j = " + j);
}
}
Bu örnekte iç döngüde j değeri 3 olduğunda break komutu çalışır. Ancak dış döngü devam eder.
Dolayısıyla her dış döngü tekrarında yalnızca j = 1 ve j = 2 değerleri görüntülenir.
17. BREAK VE CONTINUE KULLANIRKEN DİKKAT EDİLMESİ GEREKENLER
Break ve continue komutları kullanılırken aşağıdaki noktalara dikkat edilmelidir:
- Break komutunun döngüyü tamamen sonlandırdığı unutulmamalıdır.
- Continue komutunun yalnızca mevcut tekrarda kalan işlemleri atladığı bilinmelidir.
- While döngüsünde sayaç güncellemesi continue nedeniyle atlanmamalıdır.
- İç içe döngülerde komutların yalnızca en yakın döngü üzerinde etkili olduğu dikkate alınmalıdır.
- Gereksiz break ve continue kullanımı kodun okunabilirliğini azaltabilir.
- Koşullar doğru belirlenmeli ve beklenmeyen döngü davranışları kontrol edilmelidir.
18. SONUÇ
C# programlama dilinde break ve continue komutları, döngülerin çalışma akışını kontrol etmek için kullanılan önemli yapılardır.
Break komutu döngüyü tamamen sonlandırırken continue komutu yalnızca mevcut tekrarda kalan işlemleri atlayarak döngünün devam etmesini sağlar.
Bu derste break ve continue komutlarının for, while ve do-while döngülerindeki kullanımını öğrendik. Ayrıca sayı kontrolü, belirli değerleri atlama, sayı tahmin oyunu ve şifre doğrulama gibi Console uygulamaları geliştirerek konuyu pekiştirdik.
Bir sonraki dersimizde C# İç İçe Döngüler konusunu ayrıntılı olarak inceleyerek bir döngünün içerisinde başka bir döngünün nasıl kullanıldığını öğreneceğiz.