C
Programlama Dili
DERS – 9


If – else if Basamakları:

Daha önce yapmış olduğumuz programı hatırlıyalım:

Bu programı if-else bloklarını kullanarak yapmıştık. Akış diagramımızı takip ederek if- else if bloğu kullanarak programımıza düzen verelim.

Akış diagramımızda üç rakam girişi yaptıktan sonra a>b ? sorusu karşımıza çıkar. Evet cevabı ile if bloğu açılır. Kırmızı oku takip edersek sıralamanın “a, b, c” şeklinde olması için gereken şartı görmüş oluruz. Bu şart için a>b ve b>c şartı sağlanmalıdır. Şimdi bu şartı if ile ifade edelim:

yok eğer şartımız öyle değilde başka türlü ise bu sefer devreye else if bloğu devreye girer. Mor kesikli okları takip edersek “a, c, b” sıralamasına ulaşırız. Sıralama için gerek şart a>b ve c>b ve a>c olmalıdır. Bunu else if ile ifade edelim:

Diğer okları takip ederek aşağıdaki programı oluşturabiliriz.

En sonda yazdığımız else bloğunu yazmayabiliriz. Fakat programımızın daha oturaklı olması için, kullanıcının girdiği değerin tanımsız olması halinde bir çözüm oluşturmuş oluyoruz.

ÖRNEK:

ÖRNEK:

ÖRNEK:

swicth – case ifadesi:

Genel olarak bu ifade if-else if yapısına çok benzemektedir. Fakat aralarında iki fark vardır. Birincisi, switch – case yapısında, aralık değeri girmezsiniz. İfadelerin bir şeye eşit olup olmadığına bakılır. İkincisi; switch – case yapılarında, şartın sağlanmasıyla yapının kesilmek zorunda olmayışıdır. “break” komutu kullanmadığımız zaman, bize diğer şartlardaki ifadeleride yapma olanağı sağlar. switch case en tepeden başlayarak şartları tek tek kontrol eder. Uygun şart yakalanırsa, bundan sonra ki ifadeleri kontrol etmeden doğru kabul eder. Ve şayet break komutu koymamışsak, eşitlik uygun olsun olmasın, alt tarafta kalan case’lere ait komutlarda çalıştırılacaktır. if – else if ise daha önce söylemiş olduğumuz gibi böyle değildir. Uygun koşul sağlandığında, yapı dışarsına çıkılır.

switch case yapısı:

ÖRNEK:

ÖRNEK:

ÖRNEK:

Önce sayıyı alıyor ve 10′a bölüyoruz “switch(not/10)“. Yani girilen not, 48 ise 4.8 sonucunu elde ediyoruz. Ancak iki tam sayının bölüm sonucu bir virgüllü sayı vermez. İşleme giren değişkenler gibi tam sayı olarak döner. Dolayısıyla bilgisayarın elde edeceği sonuç, 4.8 değil, sadece 4′dür. switch case yapısında koşullar yukardan başlayarak kontrol ediliyor. case 4′e gelindiğinde eşitlik sağlanıyor. Ama break konmadığı için, switch case’ten çıkılmıyor. Ve altında kalan işlemlerde yapılıyor. Altında herhangi bir işlem veya break olmadığından case 0′a kadar bu böyle sürüyor. Ve case 0′da ekrana bir çıktı alıp switch case yapısı break ile sonlandırılmaktadır.

Arttırma (Increment) ve azaltma (decrement) işlemleri:

C’de (++) artırma ve (- -) azaltma işleçlerinin özel bir önemi vardır. (++) işleci yanındaki değişkenin otomatik olarak bir artmasını sağlar. (- -) ise bu işlemin tersini gerçeklestirerek, yanındaki değişkenin değerini bir azaltır. Bu işleçler değişkenin önünde yada arkasında yer alabilir. Bu durumda anlamı değişir.

Form Tip İsim Açıklama
i++ postfix post-increment İşlem sonrası arttırma
++i prefix pre-increment İşlem öncesi arttırma
i– postfix post-decrement İşlem sonrası azaltma
–i prefix pre-decrement İşlem öncesi azaltma

Gelişmiş atama (Advanced Assignment) yöntemleri:

C’de yazım kolaylığı amacıyla sunulmuş bir başka konu da, gelişmiş atama yöntemleridir.Uzun yazmamız gereken kodu kısaltan bir yöntemdir.

degisken_1 = degisken_1 (operator) degisken_2 şeklinde yazacağımız ifadeleri, daha kısa yazabilmeniz için, degisken_1 (operator) = degisken_2 şeklinde ifade edebiliriz.

şeklinde gösterilir.