23
İÇİNDEKİLER • Döngü Kontrol Deyimleri • for döngü deyimi • while döngü deyimi • dowhile döngü deyimi • foreach döngü deyimi • try..catchfinally ve Throw hata kontrol deyimleri HEDEFLER • Bu üniteyi çalıştıktan sonra; • Visual C# diline ait for, while, dowhile ve foreach  döngü Kontrol deyimlerini tanıyacak, • Döngü ve şart kontrol deyimlerini birlikte kullanabilecek, İşlemler içerisinde oluşabilecek hataları, trycatchfinally deyimi ile nasıl engelleyebileceğinizi öğreneceksiniz.     ÜNİTE 5 DÖNGÜ KONTROL DEYİMLERİ NESNE TABANLI PROGRAMLAMA –I Okt. Mustafa AKBUĞA 

DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

İÇİNDEK

İLER •Döngü Kontrol Deyimleri

• for döngü deyimi•while döngü deyimi•do‐ while döngü deyimi• foreach döngü deyimi

• try..catch‐finally ve Throw hata kontrol deyimleri

HED

EFLER •Bu üniteyi çalıştıktan sonra;

•Visual C# diline ait for, while, do‐while ve foreach  döngü Kontrol deyimlerini tanıyacak,

•Döngü ve şart kontrol deyimlerini birlikte kullanabilecek,

• İşlemler içerisinde oluşabilecek hataları, try‐catch‐finally deyimi ile nasıl engelleyebileceğinizi öğreneceksiniz.

 

 

   

ÜNİTE

5

DÖNGÜ KONTROL DEYİMLERİ 

NESNE TABANLI 

PROGRAMLAMA –I 

Okt. Mustafa AKBUĞA 

Page 2: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    2 

GİRİŞ        

Bilgisayar programlarında güvenlik amacıyla genelde kullanıcı adı ve şifre 

sorulur. Kullanıcı adı ve şifrenin doğru olarak girilmesi durumunda program çalışır. 

Hatalı girilmesi durumunda ise bu durum kullanıcıya bildirilerek, belli bir sınır 

değere kadar sürekli yeniden girilmesi istenir. Sınır değer aşıldığında ise 

programdan hemen çıkılır ya da hesap bloke edilerek bir daha girilmesine izin 

verimez. Bu örnekte olduğu gibi sürekli başa dönerek, şartları sağlayan cevabı 

bulma işlemine döngüsel işlem adı verilir.  Döngüler bir programlama dili için çok 

önemli konulardan biridir. Ardı ardına ya da sıralı bir iş yapılacağı zaman 

döngülerden yararlanılır. Döngü ifadelerini bütün kurallarıyla öğrendikten sonra 

kullanmak gereklidir. Çünkü gerekli şartlar ve kontrol değişkenleri doğru 

tanımlanamaz ise sonsuz döngüler oluşur ve bu şekilde çalışan programlar genelde 

bilgisayarı kilitleyerek veri kaybına neden olur.  

Uygulamayı geliştiren programcıların tecrübesi ne olursa olsun, hatalar 

kaçınılmazdır. Hatalar, programcının yanlışlıkla yazdığı bir koddan, daha önce 

öngöremediği bir durumdan kaynaklı olabilir. Yazılım geliştirirken hatalardan 

korkulmaması gerekir. Korkulacak olan durum, bu hataların, uygulama piyasa 

sürüldükten sonra ortaya çıkmasıdır. Yazılım geliştirirken uygulamanın verdiği her 

hatayı çözerek, daha sağlıklı bir uygulama ortaya çıkarmak programcının temel 

görevidir. 

Bu bölümde,  Visual C# diline ait döngü kontrol deyimleri olan for, while, do‐

while, foreach gibi ifadeler incelenecektir ve ayrıca programda oluşabilecek 

hataları önleyebilmek içinse try‐case‐finaly ve throw yapısı anlatılacaktır. 

 

DÖNGÜ KONTROL DEYİMLERİ  

Programlama dilllerinde, bir işlem grubunu çok sayıda tekrar etme imkânı 

sağlayan yapılara döngü denir. Aynı işlemleri defalarca tekrar yazmak gerektiğinde,  

bir döngü yapısı kurup uygulamanın otomatik olarak bu işlemi tekrar etmesi 

sağlanabilir. Visual C# programlama dilinde 4 adet döngü kontrol deyimi vardır. 

Bunlar for, while, do‐ while ve foreach döngüleridir. 

 

for Döngü Kontrol Deyimi 

for döngüsü başlangıç değerinden  itibaren belirtilen koşul  sağlanana kadar 

kod bloklarının arasına yazılan kod parçasını ardı ardına çalıştırır. 

 “ for “ ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. 

Page 3: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    3 

 

for  ( Başlangıç_değeri; Koşul; Artış miktarı)  {  // Döngü içinde çalıştırılacak kodlar  } 

 

for döngüsü, belirli bir 

değer aralığı içinde bir 

değişkeni sürekli 

yenilemeye olanak 

sağlar. 

 

 

for döngüsünün kullanımı şu şekildedir; 

Başlangıç_değeri: Döngü kontrol değişkeni olarak da ifade edilebilir. Kontrol 

değişkenine başlangıç değerinin atanmasını sağlar.  

Koşul: Döngünün ne kadar çalışacağını denetleyen mekanizmadır. Başlanğıç 

değeri  ile  verilen  kontrol  değişkenin  değeri,  koşul  ifadesiyle  karşılaştırılır.  Koşul 

sağlandığı sürece küme parantezi arasındaki kodlar çalıştırılır. 

Artış miktarı: Başlangıç değeri  ile verilen değişken değerinin, döngünün her 

adımda artma  ya da  azaltma miktarını belirleyen değerdir. Eğer başlangıç değeri 

hiç değiştirilmez ise sonsuz döngü oluşur. 

Örnek  Uygulama_1:  Bu  uygulamada  kullanıcının  belirleyeceği  alt  ve  üst 

sınırlar  arasındaki  sayıların,  toplamını  bulan  ve  ekrana  yazdıran  bir  program 

hazırlanacaktır.  

 

Şekil 5.1. Örnek_program_1 ‘e ait C# kodu 

 

 

Page 4: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    4 

 

for( ; ; ) { } şeklindeki bir 

tanımlama sonsuz 

döngü oluşturulmasını 

sağlar. Bu şekildeki bir 

kullanımda küme 

parantez blokları 

arasında mutlaka başka 

kontrol deyimleri 

kullanılmalıdır. 

 

Şekil 5.2. Örnek Program_1 için klavyeden 1 ve 100 değerlerini girme ekranı 

 

Şekil 5.3. Örnek program_1‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

 

Şekil 5,1’deki Visual C# kodu çalıştırıldığında Şekil 5,2’de görüldüğü gibi 

program altSınır ve ustSınır değerlerinin girilmesini ister. Bu değerler 1 ve 100 

olarak girildiğinde for döngüsü alt sınır ve üst sınır değerini alarak birbirleriyle 

kaşılaştırır. (1<=100) koşulu sağladığı için for döngü bloğuna girilir. Döngü bloğu 

içinde yer alan toplam değişkeni, for sayaç değeri ile toplanır. Toplama işlemi 

sonunda döngü i sayaç değişkeninin değerini 1 artırarak döngü şartını yeniden 

kontrol eder. Şart sağlandığı sürece sayaç değeri birer birer artırılarak toplam 

değişkeninin değerine eklenir. i değişkenin değeri üst sınırı geçince (101<=100) 

artık şart sağlanmadığından döngüye bir daha girilmez ve döngü sonlanır. Son 

olarak sayıların toplamı şekil 5,3’de gösterildiği gibi “Sayıların Toplamı:5050” olarak 

ekranda yazdırılarak program çalışması sonlandırılır. 

 

Örnek Uygulama_2: Bu örnek uygulamada  ise kullanıcının belirleyeceği alt ve üst 

sınırlar arasındaki çift sayıların toplamını bulan bir program hazırlanacaktır. 

 

 

 

 

 

 

 

Page 5: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    5 

 

Şekil 5.4. Örnek_program_2 ‘e ait C# kodu 

 

 

Şekil 5.5. Örnek program_2‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

 

Örnek uygulama_2 için yazılan Şekil5.4’deki Visual C# kodu (Ctrl+F5) ile 

çalıştırıldığında; Şekil 5,5’de görüldüğü üzere program altSınır ve ustSınır değerleri 

klavyeden girilmesini isteyecektir. Bu değerler 1 ve 100 olarak girildiğinde ise for 

döngüsü üst sınır ile alt sınır değerini kaşılaştırır ve şart sağlandığı için  (100>=1) for 

döngüsüne girerek if şart kontrol deyimini çalıştırır.  

Çift sayılar, 2 ile kalansız bölünebilen (2'nin tam katı olan) sayılardır. Tek 

sayılar ise 2 ile kalansız bölünemeyen sayılardır. Bu yüzden bir sayının tek mi yoksa 

çift mi olduğunu o sayının, 2 sayısına bölümünden kalana bakılarak karar verilir. 

Bu sebeple döngü içindeki (i) sayaç değerinin 2 ye bölümünden kalan 0 ise 

bu sayının çift olduğuna karar verilecek ve sayı toplanacak değilse toplama işlemi 

yapılmayacaktır. Döngü bu işlem sonrası ustsınır değerindeki i sayaç değişkeninin 

değeri 1 azaltılarak şartı tekrar kontrol edilecektir.  

Page 6: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    6 

 while (Koşul)  

        {           // Döngü içinde çalıştırılacak kodlar          } 

 

while döngüsü, koşul 

true olduğu sürece 

yinelenen if deyimine 

benzer. 

 

while döngüsüyle 

birden çok sayıda 

ifadenin kontrolu 

istenirse, bu ifadeleri 

parantezler içinde blok 

halinde gruplandırmak 

gerekir. 

Şart sağlandığı sürece sayaç birer birer azaltılarak çift sayılar toplam 

değişkeninin değerine eklenecektir. ( i ) değişkenin değeri alt sınır değerininde 

altına düşünce  (0 olunca) şart sağlanmadığından döngüye girilemeyecek ve döngü 

sonlandırılacaktır. En son olarak Sayıların toplamı yer tutucu sayesinde şekil 5,5’de 

gösterildiği üzere ekrana “Sayıların Toplamı:2550” şeklinde yazdırılarak program 

bitirilecektir.  

Örnek uygulama_1 ‘de;  for için kullanılan ( i ) sayaç değişkeni alt sinir 

değerden başlayarak üst sınır değerine kadar değeri artacak şekilde kullanılmıştır. 

Bu örnek uygulamada ise ( i ) sayaç değişkenin değeri üst sinir değerden başlayarak 

alt sınır değerine kadar azaltılmıştır. for döngüsünde kullanılan sayaç değişkeni 

örnek programlarda olduğu gibi her iki şekildede yazılabilir. 

 

while Döngü Kontrol Deyimi 

Visual C#’taki döngülerden bir diğeri ise while döngüsüdür. Döngünün tekrar 

etme sayısının bilenmediği durumlarda bu döngü ifadesini kullanılır. for döngüsü 

ve if şartının birleşimi gibidir. Parantez içerisindeki koşul doğru (true) olduğu 

sürece döngü çalışır. Koşul yanlış ( false ) sonucunu verdiği zaman ise döngü 

sonlandırılır. 

“ while“ ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. 

 

 

 

 

 

 

 

 

Örnek Uygulama_3: Bu örnek uygulamada; Bir while döngüsü içerisinde  klavyeden 

sürekli bir sayı girilmesi istenecektir. Girilen sayılar çift sayı ise toplamları 

hesaplanacak, tek sayı ise program sonlandırılarak o zamana kadar yapılan toplama 

işleminin sonucu ekrana yazılacaktır. 

 

Page 7: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    7 

 

while ve for ifadelerinin 

her ikisi de döngü şartını 

döngünün başlangıcında 

test eder. Koşul ilk 

değerlendirmede false 

sonucunu verirse, döngü 

bir kez bile çalıştırılmaz. 

do – while ifadesi 

bundan farklı olarak, 

döngü şartını döngü 

sonunda değerlendirilir, 

yani ifadenin gövdesi her 

zaman en azından bir kez 

çalıştırılır. 

 

Şekil 5.6. Örnek_program_3 ‘e ait C# kodu 

 

Şekil 5.7. Örnek Program_3  için klavyeden çift sayı değerlerin  girilmesi 

 

Şekil 5.8. Örnek program_3‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

Örnek uygulama_3 için yazılan Şekil 5.6’daki Visual C# kodunu, (Ctrl+F5) ile 

çalıştırın. Şekil 5.7’de görüldüğü üzere “Bir sayı giriniz:” şeklinde program bir mesaj 

vererek klavyeden bir sayı değeri girmeniz istenecektir. Bu değerler 2,4,6,8  gibi çift 

sayı olarak girildiğinde; while döngüsü içindeki koşul sürekli sağlandığından bu 

sayıların değeri toplam değişkenine eklenecektir. Kullanıcının kaç tane daha çift 

sayı gireceği belirsizdir. Program çift sayı girildiği sürece şart sağlandığı için 

toplama işlemine devam edecektir. Eğer Şekil 5.8’de gösterildiği gibi herhangibir 

tek sayı girildiğinde while döngüsü içinde tanımlanan şart artık sağlanamadığından 

“Girilen Çift Sayıların Toplamı” mesajını ve çift sayıların toplamını ekranda yazarak 

program sonlanacaktır. 

Page 8: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    8 

do {  // Döngü içinde çalıştırılacak kodlar  }   while ( Koşul ) 

 

while döngüsünde 

koşul parentez 

içerisinde belirtilir ve bu 

satırda noktalı virgül (;) 

kullanılmaz. 

do..while Döngü Kontrol Deyimi  

Visual C#’taki bir diğer döngü de do‐while döngüsüdür. For ve while 

döngülerinden farklı olarak dögüye devam etmek için gereken şartı döngünün en 

sonunda kontrol eder. Kontrol sonucuna göre döngüye ya devam edilir ya da 

döngüden çıkılır. Bu durumda şart sağlanmasa bile döngü en az bir kez çalışmış 

olur. 

“ do‐while“ ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. 

 

 

 

 

 

 

Örnek Uygulama_4: Bu uygulama; “Kullanıcı adı” ve “Şifreyi” kullanıcıdan isteyerek, 

girilen değerleri do‐while döngüsü ile kontrol edecektir. Bu değerlerin doğru 

girilmesi durumunda “Kullanıcı adı ve şifre doğru girildi” mesajı görülecektir.  Yanlış 

girilmesi durumunda ise “Kullanıcı adı ve şifre hatalı girildi” mesajı verecektir. Üst 

üste 3.kez hatalı bilgi girilmesi durumunda  program sonlandırılacaktır.  

 

Şekil 5.9. Örnek_program_4 ‘e ait C# kodu 

Page 9: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    9 

 

foreach döngüsü bir dizi 

üzerinde işlem 

yaparken, dizi 

elemanları sadece 

okunur durumdadır, 

değerleri 

değiştirilemez. 

 

Şekil 5.10. Örnek program_4‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

 

Şekil 5.11. Örnek program_4‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

 

Örnek uygulama_4 için yazılan Şekil 5.9’daki Visual C# kodunu, (Ctrl+F5) 

kısayol tuşlarını kullanarak çalıştırın. Şekil 5.10’de görüldüğü üzere “Lütfen kullanıcı 

adını giriniz:” ve “Şifreyi giriniz:”şeklinde program iki mesajı vererek klavyeden bir 

bu istenen bilgileri girmenizi isteyecektir. Bu değerler Şekil 5.10 de gösterildiği gibi 

kullanıcı adına “bilgisayar”, şifreye “1234”  bilgileri girildiğinde; kod içindeki if şart 

kontrol deyimi programda değişken içirisine atanmış bu değerler ile kullanıcının 

girmiş olduğu değerleri mantıksal (Ve) operatörüyle karşılaştıracaktır. Her iki 

ifadeninde tanımlanan değerler ile uyumlu olması durumunda  Şekil 5.10 ‘da 

gösterilen kullanıcı adı ve şifre doğru girildi mesajı alınacak ve break komutunun 

çalıştırılmasıyla program sonlandırılacaktır. 

Kullanıcı adı veya şifrenin hatalı olarak girilmesi durumunda  if içindeki 

koşul sağlanmadığından  program if blok yapısına girmeyecek ve Şekil 5.11’de 

gösterildiği üzere “kullanıcı adı ve şifre hatalı olarak  girildi” mesajı verecektir. Bu 

durumda döngü dışında tanımlanan ve değeri 0 olarak verilen a sayaç değeri 1 

artırılır ve  while  döngü kontrol değişkenin değeriyle karşılaştırılır. (a<4) Şartı 

sağlandığı sürece  döngü blok yapısı çalışmaya devam edecektir. a sayaç değeri üç 

den büyük olduğu durumda while şartı sağlanmaz ise döngü blok yapısından 

çıkarak kullanıcıya 3 kez hatalı kullanıcı adı ve şifre girme hakkı tanımış olur. Eğer 

burada do‐while döngü kontrol deyimi kullanılmış olsaydı döngü şartı 

sağlanmadığından kullanıcı adı ve şifre hiçbir şekilde kontrol edilemezdi. Bu yapı 

sayesinde en az bir kez döngünün çalışması sağlanabilmektedir. 

 

Page 10: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    10 

 

foreach (değişken tipi değişken in dizi)          { 

          // Döngü içinde çalıştırılacak kodlar     } 

foreach Döngü Kontrol Deyimi 

Visual C#’ta kullanılan bir diğer döngü de foreach döngüsüdür. foreach, dizi tabanlı 

nesnelerin elemanları üzerinden  ilerleyen bir döngü yapısıdır. Bu döngü yapısının 

daha ayrıntılı kullanımı diziler adlı ünitede anlatılacaktır. 

“ foreach“ ifadesinin genel yapısı aşağıdaki şekilde gösterilmektedir. 

 

 

 

 

 

Foeach döngüsünün kullanımı şu şekildedir; 

değişken tipi, Değişken tipi dizinin veri tipi ile aynı veya uyumlu olmak zorundadır. 

değişken,    Tanımlanan  değişken,  sırasıyla  belirtilen  dizi  içerisindeki  elemanları 

tutar. 

dizi,  Aynı tip verileri barındıran dizilerdir. 

Örnek  Uygulama_5:  Bu  uygulamada  haftanınGünleri  adlı  bir  dizi 

tanımlanarak  içerisine  gün  isimleri  atanacaktır.  Bu  dizinin  elamanlarını  foreach 

döngü yapısı kullanılarak yazdıran bir bir program hazırlanacaktır.  

 

 

Şekil 5.12. Örnek_program_5 ‘e ait C# kodu 

Page 11: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    11 

 

Uygulamalarda 

try…catch bloğu 

kullanıp, catch bloğu 

içerisini boş bırakırsa 

Uygulama asla hata 

vermez. Ancak bu 

istenmeyen bir durum 

değildir. 

 

foreach döngüsü, Dizi 

değişkenlere daha kolay 

ulaşmak maksadıyla for 

döngüsünden 

türetilmiştir. 

 

Şekil 5.13. Örnek program_5‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

Şekil 5.12’de gösterilen Visual C# kodunu, (Ctrl+F5) kısayol tuşlarını 

kullanarak çalıştırın. Programın çalışması sonucu Şekil 5.13’de görülen  “Pazartesi‐

Salı‐Çarşamba‐Perşembe‐Cuma‐Cumartesi‐Pazar" şeklindeki gün isimleri,  foreach 

kullanılarak ekrana yazılmıştır. 

Bu mesajı foreach döngü deyimi, haftanınGunleri ismindeki dizi değişkenin 

elemanlarını, bir döngü içinde tek tek okuyarak string x değişkenine aktarıp 

Console. WriteLine metodu yardımıyla ekrana yazdırmaktadır.  

   

try..catch‐finally hata kontrol deyimleri 

 

Projelerde  kod  yazmayı  bitirdikten  sonra  programda  hata  olup  olmadığını 

kontrol etmek mantıklı bir  iş değildir. Hatalar, kod yazılırken sık aralıklarla kontrol 

edilmelidir.  Projeyi  test  etmek  için  her  seferinde  çalıştırmak  eksik  kalan  kodlar 

yüzünden pek mümkün olmaz. Hatalarla başa çıkmanın en güzel yolu uygulamada 

hata oluşturabilecek yapıdaki kodları tahmin edip bunları try ve catch isimli bloklar 

içerisine yazmaktır.  try bloğunda hata vermesi muhtemel kodlar yer alır. Eğer bir 

hata oluşursa, uygulama hata oluşan satırda durur ve program hata vermez; bunun 

yerine  catch bloğu  içerisindeki  kodları  çalışmaya başlar.  catch bloğundaki  kodlar 

çalıştıktan  sonra  uygulama  hata  oluşan  try  bloğu  içindeki  kodlardan  değil, 

try..catch yapısı altındaki kodlardan devam eder. Çalışan programda bir hata oluşsa 

bile  program  kırılmaz. Oluşan hatanın  bilgisi  kullanıcıya mesaj  olarak  bildirilir  ve 

programın güvenli bir şekilde ilerlemesi sağlanır.  

 Bir try bloğunun birden fazla catch bloğu olabilir. Böylelikle oluşacak hataya 

göre farklı kodlarla çalıştırılabilir. Örneğin klavyeden bir string tipindeki  değişkene 

int  veri tipinde değer girilmesi bir hatadır, bir sayısının sıfıra bölünmeye çalışılması 

ise başka bir hata türüdür. Her hata türüne uygun catch yapısı tanımlanmalıdır. 

try..catch  yapısı  ile  beraber  çalışan  bir  de  finally  bloğu  vardır.  Bu  blok 

tamamen  opsiyoneldir,  kullanıp  kullanmamak  programcıya  bırakılmıştır.  finally 

bloğunda yazılan kodlar, try içerisinde bir hata oluşsun ya da oluşmasın her zaman 

çalışır. 

 “try..catch ‐finally“ ifadesinin genel yapısı aşağıdaki  gösterilmektedir. 

Page 12: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    12 

    try    {     //Buraya hata oluşturması beklenen kodlar yazılır     }    catch (Exception)    {     // Bir hata türü tespit edilince çalışacak kodlar yazılır    } ...   catch (Exception) 

   {     // Başka Bir hata türü tespit edilince çalışacak kodlar yazılır    }    finally  

   {     // Her durumda çalıştırılacak olan kodlar buraya yazılır    } 

 

 

Örnek  Uygulama_6:  Bu  uygulamada  kullanıcıdan  int  türünde  bir  sayı  klavyeden 

girmesi istenmektedir. Eğer sayı istenen türde girilmez ise program “Geçerli bir sayı 

giriniz” mesajı verecektir.  

 

 

Şekil 4.14. Örnek Program_6 için klavyeden 1 ve 100 değerlerini girme ekranı 

 

 

 

Page 13: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    13 

 

Şekil 5.15. Örnek_program_1 ‘e ait C# kodu 

Bu uygulamada kullanıcının nasıl bir veri gireceğini kestirmek güçtür. İstenen 

aralıkta bir değer girmez ise kullanıcının verdiği değer int veri tipine 

dönüştürülemeyecek ve program hata vererek bilgisayarın kararsız çalışmasına 

hatta kilitlenmesine neden olacaktır. Bu yüzden hata verme ihtimaline karşı veri 

giriş ve dönüştürme kodu try bloğu içerisine yazılmıştır. Bu “try‐catch”  içerisindeki 

kodda bir hata oluştuğunda,  catch bloğu içerisindeki “Geçerli bir sayı giriniz” 

mesajı ile kullanıcıya bildirilecektir.  

Şekil 5.15 deki kodlar çalıştırıldığında Şekil 5.16’daki gibi 1 değeri girilirse 

hata oluşmayacaktır. Şekil 5.17 deki gibi “Erzurum” string değeri girilirse Şekil 

5.18’deki gibi “try‐catch”  yapısı sayesinde “Geçerli bir sayı giriniz” şeklinde 

program bizi uyaracaktır. Bu uygulamada “try‐catch”  kullanılmasaydı hatanın 

neden kaynaklandığı anlaşılamayacak ve program kontrolsüz bir şekilde 

kapanacaktı. 

 

 

Şekil 5.16. Örnek Program_6 için klavyeden 1 değerinin girilmesi 

 

Page 14: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    14 

throw new DivideByZeroException("Sıfıra bölme hatası"); 

 

Şekil 5.17. Örnek Program_6 için klavyeden “Erzurum” değerinin girilmesi 

 

Şekil 5.18. Örnek program_6‘e hatalı bir değerin yazılmasıyla ortaya çıkan ekran görüntüsü 

Throw  deyimi:  Throw  hatayı  fırlatma  anlamına  gelir.  Bazı  durumlarda  hatalar programı test etmek maksatlı bilerek oluşturulmak istenebilir. Bunun için, “throw” komutu  kullanılır.  “throw”  ifadesinin  kullanıldığı  noktada  program  durarak istenilen  istisnayı  üretir.  Böylece  catch  içinde  belirtilen  hata  denetiminin  çalışıp çalışmadığı test edilebilir. 

 

Tablo 5.1: Try‐catch içerisinde en sık kullanılan hata kontrol sınıfları 

Hata Tipleri  Hatanın Anlamı 

ArithmeticException  Aritmatiksel bir işlem sırasında oluşan hata  

DivideByZeroException  Sıfıra bölme durumlarında oluşur 

FormatException  Sayısal veri türüne sahip değişkene harf girilmesi durumunda 

NumberFormatException  Uygun olmayan sayı formatı hatası 

OverflowException  Değişkene girilen sayı değişiken türünün aralığı dışındaysa 

IndexOutOfRangeException Bir dizinin index sınırları aşıldığında 

InvalidCastException  Geçersiz tür dönüşümü yapıldığında  

StringIndexOutOfBounds  String yapısının sınırlarından çıkma hatası 

OutOfMemoryException  Programın çalışması için yeterli bellek kalmadığında  

 

Page 15: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    15 

Örnek  Uygulama_7:  Bu  uygulamada  kullanıcıdan  klavye  ile  iki  sayı  girmesi  ve 

Sonrasında basit dört  işlem  seçeneklerinden birisini  seçmesi  istenmektedir.  Eğer 

girilen  sayı ve  istenen  seçeneklerden birinde hata meydana gelir  ise program bu 

ekranda hataya uygun mesaj vererek kullanıcıyı uyaracaktır.  

 

Şekil 5.19. Örnek_program_7 ‘e ait C# kodu 

Şekil 5.19’da Visual C# kodu verilen program (Ctrl+F5) ile çalıştırıldığında 

Şekil 5.20’de görülen konsol ekranı görüntülenecektir. Bu ekranda sayı1 için 2 ve 

sayi2 içinse 8 rakamları girilmiş ve toplama işlemi yapılmıştır. Program çalışırken 

hiçbir hata meydana gelmediğinden Sonuç ekranında 10 sayısı gösterilerek 

program sonlanmıştır.  

 

Program yeniden çalıştırıldığında bu sefer Şekil 5.21’de gösterilen sayı1 için 8 

ve sayi2 için 0 değerleri girilerek bölme işlemi seçilmiştir. Bu işlem sonucunda sıfıra 

bölme hatası ortaya çıktığından Şekil 5.19’da kırmızı okla işaret edilen catch 

çalışmış ve program akışını bozulmadan  “Sıfıra bölme hatası yapıldı“ mesajını 

vermiş ve kullanıcıyı uyararak sonlanmıştır. 

 

Page 16: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    16 

 

Bir sayının sıfıra bölümü 

tanımsızdır. Genelde 

Bölme işlemi sonunda 

ortaya çıkan bu tür 

durumlar, programın 

kontrolsüz çalışmasına 

neden olur. Bu tür 

durumlarda Try‐catch 

kontrol yapısı 

kullanılırsa programın 

karşılaştığı bu tür 

hatalarda nasil 

davranabileceği 

programlanabilir. 

Program test amacıyla yeniden çalıştırılarak Sayı1 için 4 Sayı2 için bir string 

değer olan Erzurum değerleri girilmiştir. Program içinde hata meydana gelmiş fakat 

yarıda kesilmeden “geçerli bir sayı giriniz” uyarısı vererek sonlandırılmıştır. 

Son hata mesajını görmek için program yeniden çalıştırılarak Şekil 5.23’de 

gösterildiği gibi sayı1 için 6 sayı2 için 77777777777777777777777777777 gibi 

tanımlanan aralık dışında bir değer girilmiştir. Bu durumda program bu hatayı 

tespit ederek ilgili catch tanımını çalıştırarak “Girilen sayı tanımlanan aralıkta değil” 

mesajı vererek sonlanmaktadır. 

 

Şekil 5.20. Örnek program_7‘e ait programa sayı1:2 ve sayı2:8 değerlerinin girilmesi 

 

 

Şekil 5.21. Örnek program_7‘e ait programa sayı1:8 ve sayı2:0 değerlerinin girilmesi 

 

Şekil 5.22. Örnek program_7‘e ait programa sayı1:4 ve Erzurum değerlerinin girilmesi 

Page 17: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    17 

 

Şekil 5.23. Örnek program_7‘e e ait programa sayı1:6 ve 7777.. değerlerinin girilmesi 

Örnek  Uygulama_8:  Bu  uygulamada  kullanıcıdan  klavyeden  iki  sayı  girmesi  ve 

Sonrasında  basit  dört  işlem  seçeneklerinden  birisini  seçmesi  istenmektedir. 

Programda işlem yapmadan sıfıra bölme hatası vermiş gibi çalışması sağlanacaktır. 

 

 

Şekil 5.24. Örnek_program_8 ‘e ait C# kodu 

     

Page 18: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    18 

 

Şekil 5.25. Örnek program_8‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

 

 

Şekil 5.26. Örnek program_8‘e ait kodların çalıştırılmasıyla ortaya çıkan ekran görüntüsü 

 

Şekil 5.24’da Visual C# kodu verilen program (Ctrl+F5) ile çalıştırıldığında 

Şekil 5.25’de görülen konsol ekranı görüntülenecektir. Bu ekranda sayı1 için 4 ve 

sayi2 için ise 6 rakamları girilmiş ve toplama işlemi yapılmıştır. Program çalışırken 

hiçbir hata meydana gelmediği halde throw deyiminden dolayı ”Sıfıra bölme hatası 

yapıldı “ şeklinde mesaj verilip program sonlandırılacaktır. Bu sayede işlemler 

içerisinde meydana gelebilecek hatalar, önceden başarılı bir şekilde tespit edilerek 

kullanıcıya bildirilip bildirilmeyeceği test edilebilir. 

 

Page 19: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    19 

 

Özet

•Programlama dilllerinde, bir işlem grubunu çok sayıda tekrar etme imkânı sağlayan yapılara döngü denir.  Visual C# programlama dilinde 4 adet döngü kontrol deyimi vardır. Bunlar for, while, do while ve foreach döngüleridir.

•for Döngü Kontrol Deyimi;for döngüsü başlangıç değerinden itibaren belirtilen koşul sağlanana kadar kod bloklarını arasına yazılan kod parçasını ardı ardına çalıştırır.

•while Döngü Kontrol Deyimi; Döngünün çalışma sayısını bilenmediği durumlarda bu döngü ifadesini kullanılır. if ve for döngüsünün birleşimi gibidir. Parantez içerisindeki şart doğru (true) olduğu sürece döngü çalışır. Koşul yanlış ( false ) sonucunu verdiği zaman ise sonlandırılır. 

•do..while Döngü Kontrol Deyimi ; for ve while döngülerinden farklı olarak dögüye devam etmek için gereken şartı döngünün en sonunda kontrol eder. do –while Kontrol sonucuna göre ya döngüye ya devam eder ya da döngüden çıkar. Bu durumda şart sağlanmasa bile döngü en az bir kez çalışmış olur. 

•foreach Döngü Kontrol Deyimi; foreach, dizi tabanlı nesnelerin elemanları üzerinden ilerleyen bir döngü yapısıdır. 

•try..catch‐finally hata kontrol deyimleri;Hatalarla başa çıkmanın en güzel yolu/ uygulamada hata oluşturabilecek yapıdaki kodları tahmin edilip bunları try ve catch isimli bloklar  içerisine yazmaktır.try bloğunda hata vermesi muhtemel kodlar yer alır. Eğer bir hata oluşursa, uygulama hata oluşan satırda durup hata vermez; bunun yerine catch bloğu içerisindeki kodları çalışmaya başlar. catch bloğundaki kodlar çalıştıktan sonra uygulama hata oluşan try bloğu içerisinden değil, try..catch yapısı altındaki kodlardan devam eder. Böylelikle uygulamamız hata oluşsa bile sağlıklı bir şekilde çalışmasına devam eder. 

•try..catch yapısı ile beraber çalışan bir de finally bloğu vardır. Bu blok tamamen opsiyoneldir, kullanıp kullanmamak programcıya bırakılmıştır. finally bloğunda yazılan kodlar, try içerisinde bir hata oluşsun ya da oluşmasın her zaman çalıştırılır.

•Throw deyimi: Bazı durumlarda hatalar programı test etmek maksatlı bilerek oluşturulmak istenebilir. Bunun için, “throw” komutu kullanılır. “throw” ifadesinin kullanıldığı noktada program durarak istenilen istisnayı üretir.

•Bir çok Hata yakalamak için bir çok sınıf vardır, En çok kullanılan sınıflar,<DivideByZeroException>Sıfıra bölme durumlarında oluşur,<FormatException>Sayısal veri türüne sahip değişkene harf girilmesi durumunda,<OutOfMemoryException>Programın çalışması için yeterli bellek kalmadığında,< ArithmeticException>Aritmatiksel bir işlem sırasında oluşan hatalarda içindir.

Page 20: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    20 

 

Değerlendirme sorularını 

sistemde ilgili ünite 

başlığı altında yer alan 

“bölüm sonu testi” 

bölümünde etkileşimli 

olarak cevaplayabilirsiniz. 

 

 

DEĞERLENDİRME SORULARI 

1. Seçeneklerden hangisi for için sonsuz döngüyü ifade eder?  

a) for ( ; ; ) {} 

b) for ( ; i<0; ){} 

c) for ( i=0; ; ){} 

d) for (int i=0 : : ){} 

e) for ( , ,){} 

 

2.Başlangıç ve bitiş değeri bilinen tekrarlı işlemlerde kullanılması en uygun olan döngü aşağıdakilerden hangisidir? 

a) while 

b) for 

c) do‐ while 

d) switch 

e) foreach  

3. Aşağıdaki döngülerden hangisi içine yazılan kodlar, en az bir kere mutlaka çalışır? 

a) while 

b) for 

c) do‐ while 

d) switch 

e) foreach  4. Aşağıdaki döngülerden hangisi sadece diziler içerisindeki elemanların görüntülenmesi amacıyla kullanılır? 

a) while 

b) for 

c) do‐ while 

d) switch 

e) foreach   

 

 

 

Page 21: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    21 

using System; class Program {     static void Main()     {          for (int i = 10; i >= 1; i‐‐)         {             Console. WriteLine(i);         }      } } 

 

 

 

 

 

 

 

 

 

 

5. Yukarida verilen kod içerisindeki for ifadesi çalıştırıldığında çıktı ekranında 

aşağıdaki seçeneklerden hangisi görüntülenir. 

a) 1,2,3,4,5,6,7,8,9 sayilari alt alta görüntülenir 

b) 2, 4, 6, 8,10 sayilari yan yana görüntülenir 

c) 10, 8, 6, 4, 2 sayilari alt alta görüntülenir 

d) 10,9,8,7,6,5,4,3,2,1 sayilari yan yana görüntülenir 

e) 10,9,8,7,6,5,4,3,2,1 sayilari alt alta görüntülenir 

 

6. Hangisi, C# programlama dilinde yazılmış, bir Konsol uygulamasını çalıştırmak için kullanılır? 

a) Ctrl+C 

b) Alt+V 

c) Shift+P 

d) Ctrl+F5 

e) Alt+F1  

7. (FormatException) şeklindeki tanımlamanın yapıldığı bölüm aşağıdakilerden hangisidir? 

a) try  

b) catch 

c) finaly 

d) throw 

e) break       

Page 22: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    22 

8.Seçeneklerde verilen hata tanımlarından hangisi kesinlikle doğrudur? 

a) DivideByZeroException>Sıfıra bölme durumlarında oluşur 

b) ArithmeticException> Değişkene girilen sayı değişiken türünün aralığı dışındaysa 

c) NumberFormatException> Aritmatiksel bir işlem sırasında oluşan hata 

d) OutOfMemoryException> Uygun olmayan sayı formatı hatası  

e) OverflowException> Programın çalışması için yeterli bellek kalmadığında  

 

9. Visual C# programlama dilinde kullanılan aşağıdaki deyimlerden hangisi için 

verilen eşleştirme kesinlikle doğrudur? 

a) throw ‐ şartlı ifadeler oluşturma 

b) switch ‐ tekrarlı işlemler gerçekleştirme 

c) while ‐ özel durumlar oluşturma 

d) catch – özel durum yakalama 

e) if‐ kodları en bir kez çalıştırma 

 I.  if II.  for III.  switch IV. While 

 10. Aşağıdaki yapılardan hangisi veya hangileri kodlamalardaki tekrarlı işlemleri yapmak için kullanılır?  

a) Yalnız I 

b) Yalnız II  

c) Yalnız II  

d) I ve III 

e) II‐IV 

  

 

Cevap Anahtarı:1.A,2.B,3.C,4.E,5.E,6.D,7.B,8.A,9.D,10.E 

 

 

 

Page 23: DÖNGÜ KONTROL DEYİMLERİ · •Visual C# diline ait for, while, do‐ while ve foreach döngü Kontrol deyimlerini tanıyacak, •Döngü ve şart kontrol deyimlerini birlikte

Döngü Kontrol Deyimleri 

 

Atatürk Üniversitesi Açıköğretim Fakültesi    23 

 

YARARLANILAN KAYNAKLAR  

 

AKBUĞA. Mustafa, (2011), Atatürk Üniversitesi, Uzaktan Eğitim Merkezi, Nesne Tabanlı 

programa‐I Ders Notları 

ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, İstanbul. 

AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul. 

CLARK, Dan, (2013), Your visual blueprint for building.NET application, 2nd Edition, Hungry 

Minds, New York. 

SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, Alfa Basım 

Yayım Dağıtım, İstanbul. 

SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman,  Arkadaş Yayınevi,  

Ankara.  

YANIK, Memik, (2004), Microsoft Visual c#.NET, 1.Baskı, Seçkin Yayıncılık, Ankara. 

AYRILMAZ, Emre(2008), C# 3.0 ile Programlama Temelleri, Bilge Adam Yayınları, İstanbul.