DEYİMLER

@ 28 Kasım 2003 tarihinde yazdı. Yazıya yorum yazın.

DEYİMLER
Bir program bir dizi deyimden oluşur. Deyimler, ifadeler, açıklamalar ve programın işleyişi içinde işlevsel olan program satırlarıdır. Ancak C# dilinde deyimler sırayla ve satırlar halinde yazılmak yerine bloklanırlar. Bloklama, C# programı içinde deyim yapısını etkileyen en  önemli yapıdır.

C# blokları küme işareti (braces) olarak bilinen işaretlerle belirtilirler:

Kod bloğu:

<code>{program kodu

}

</code>

Kod blokları program parçalarının (yordamların) oluşmasını sağlar. Bu anlamda program içinde değişkenlerin tanımlamalarında ve kapsamların önemli rol oynar:

Kod bloğu:

<code>{int i;

}

.

{

int i;

}

</code>

Yukarıda iki ayrı blok içinde aynı değişken tanımlanmıştır.

Bir de iç içe tanımlanan kod blokları vardır:

<code>{int i;            .

{

int i;

.

}

}

</code>

II. PROGRAM DENETİM DEYİMLERİ
Program içinde yer alan deyimleri, atama deyimleri, karar (sapma) deyimleri, döngü (loop, iteration) ve C’ye özel atlama (jump) deyimleri olarak gruplandırabiliriz.

Program Denetimi Yapıları:
Karar (sapma)

Döngü

 

Atlama

 

 

 

Klasik (geleneksel) programlamada programın akışı sıradan gider. Diğer bir deyişle programın işletimi deyimlerin sırasıyla yürütülmesiyle (satır satır) devam eder. Bir karar, döngü ya da bir atlama deyimi ile karşılaşılması durumunda programın işletim sırasını değiştirir.

Ana karar yapıları şunlardır:

Karar yapıları:

If..Else
Switch

Döngüler özellikle programın etkinliği bakımından önemli bir programlama tekniğidir.

Döngü Yapıları:

While
Do
For
Foreach

Atlama (Jump) yapıları ise program denetimini hiçbir koşula bağlı olmadan (doğruda) bir diğer deyime geçirir.

Bu deyimler:

Goto
Break
Continue

A. IF DEYİMİ
Program içinde karar vermek için kullanılan en basit yapıdır. If..Else deyimi bir Boolean ifadeyi değerlendirerek program denetimi belirtilen deyim gruplarına geçirir.

Örnek:

<code>if (saat = = 24) {saat = 0;gun++

}

</code>

Karar yapılarının temelinde değerler arasındaki ilişkiler yatar. İlişkiler değerler arasındaki operatörlerle kurulur.

Tablo: İlişki  operatörleri

Operatör          Anlamı

<                      Küçüktür

<=                    Küçük eşittir

>                      Büyüktür

>=                    Büyük eşittir

!=                     Eşit değildir

= =                   Eşittir

B. IF.. ELSE DEYİMİ
Klasik olarak kullanılan karar mekanizmasıdır. Eğer koşul sağlanıyorsa (if) bunu yap; yoksa şunu yap (else) gibi:

Yapı: (1)

<code>If (koşul){ işlem }Yapı: (2)

If (koşul)

                        { işlem1 }

Else if (koşul)

                        { işlem2 }

</code>

Yapı: (3)

if (koşul)
if (koşul2)

 

            işlem

 

 

 

If yapıları kapsama göre bloklanabilir:

Birinci koşulun değerlendirilmesini ardından blok başlar:

<code>if (koşul){if (koşul2)

            işlem

            else

            işlem-n

}

If ve else blokları ayrı ayrı:

if (koşul) {

if (koşul2)

            işlem

} else {

            işlem-n

}

</code>

C. SWİTCH DEYİMİ
Switch deyimi de if deyimi gibi programın koşullara gore yönlenmesini sağlar. Özellikle bir değişkenin değerine gore değişik işlemler yapılacaksa o zaman Switch..Case yapısı uygun olur. Örneğin ücret değerinin belli kademelerde değişik oranlarda vergilenmesi gibi.

Yapısı:

<code>Switch (değişken) {Case koşul1:            İşlem1

Case koşul2:

            İşlem2

Default:

            İşlem3

}

</code>

Default etiketi, değerin herhangi bir case koşuluna uymadığı durumlarda gidilecek deyimi belirtir.

Örnek : Su parası hesabı

Su parası hesabı ya da KDV kesintisi hesabı ya da benzer fiyatlandırmalar belli bir tarifeye göre bir hesaplamanın yapılarak bir işlemin yapılmasını ve sonucun hesaplanmasını gerektirirler.

Örnekte aşağıdaki tablo kullanılarak ekrandan girilen mektreküp değerlerine göre ne kadar TL’lık su harcandığını hesaplayan bir program yazılacaktır.

Tablo : Su hesabı bilgileri

Tüketim            Metreküp fiyatı

0-10                 20.000 TL

11-50               40.000 TL

51- sonsuz        100.000 TL

Bu örneğin Switch..Case yapısı ile kodlamaya çalışın.

D. DÖNGÜLER
Program denetiminde yaygın olarak kullanılan mekanizmalardan birisi de döngülerdir. Döngüler işlemlerin yinelenmesi anlamına gelir. Örneğin dosyanın sonuna kadar kayıtların birer birer okunması ve her okunan kayıt üzerinde belli işlemlerin yapılması gibi. Çünkü burada yapılacak işlem aynıdır ama dosyada yer alan bütün kayıtlar için uygulanır.

C#’da çeşitli döngü yapıları vardır:


While deyimi
Do deyimi

 

For deyimi

 

 

 

While Deyimi

While deyimi en kolay döngü yapısını kurmanızı sağlar. While yapısı içinde bir Boolean ifadenin doğru olduğu süre boyunca belirtilen işlemlerin yenilenmesi sağlanır.

Yapısı:

<code>while (koşul) {yinelenecek işlem}</code>

Örnek: Birden yirmiye kadar sayıları yazdırmak.

<code>int = 0;while (i < 20) {Console.Writeline(i);

i++;

}

</code>


Do Deyimi

Bir blok deyimi verilen koşul doğru (True) olduğu sürece işletir.

Yapısı:

<code>Do {            yinelenecek işlem} while (koşul)</code>

Belirtilen koşul doğru olduğu sürece döngünün işleyeceğini belirtir.

While ile Do..While yapısı arasında fark şudur. While yapısında koşul doğru ise döngüye girilir. Her seferinde koşul test edilerek işlemler yinelenir. Do…While yapısında ise, ilk başta döngüye bir kez girilir. Koşul çıkışta test edilir.

Koşulların Do döngüsünü başında yer alması denetimin döngünün başında yapılması anlamına gelir. Döngü başında kullanılan While deyimi ise koşul False olduğu süre boyunca döngünün işlemesini sağlar.

While ve Do.. While Sistemi:

While Yapısı:

<code>int sayac = 1;while (sayac <= 10) {            Console.WriteLine(sayac);

            sayac++;

}

Do..While Yapısı:

int sayac = 1;

Do {

            Console.WriteLine(sayac);

            sayac++;

} while (sayac<= 10);

</code>

For Deyimi

Bir grup deyimi belli sayıda çalıştırarak (tekrar ederek) bir döngü oluşturur. Örneğin birden ona kadar (on kere) şu işlemi yap şeklinde. Özellikle bir döngü denetim değişkenin kullanıldığı (sayaç) bu döngü yapısı iç içe döngülerin de yapılmasını sağlar.

Yapısı:

for (ilk değer ; koşul ;  artırım )

iç deyimler

Örnek:

<code>for (int i = 0; i < 10; i ++) {Console.WriteLine(i);        }</code>

For…Next döngüsünde döngü değişkeni, döngünün kullanımında önemli bir rol oynar. Kullanımlardan genellikle döngü değişkeni ile bir dizinin elemanı ya da kayıt sayısı gibi değerler temsil edilir:

<code>for (int i = 0; i < 7; i ++) {Console.WriteLine(gunler);        }</code>

Jump Deyimleri

Döngüler ve karar deyimleri görevlerini yerine getirirken, bazen çıkış yapmaya gereksinim duyulur. C#’da goto, break ve continue deyimleri atlama deyimleri olarak bilinir.

Goto deyimi program içinde belirtilen bir etikete atlamayı sağlar. Ancak yapısal programlama açısında kullanımı önerilmez.

Örnek:

<code>..atla:..

goto atla;

</code>

Break ve continue deyimi

En yakın bloktan çıkışı sağlar. Continue deyimi ise yeni bir döngüye başlar.

<code>int sayac = 1;while (true) {            Console.WriteLine(sayac);

            sayac++;

            if (sayac <= 10)

                        continue;

            else

                        break;

}

</code>

 

 

            else

            işlem-n