ANASAYFA

C Programlama (7)

Serimizin yedincisi…

[responsivevoice_button voice="Turkish Male"]

Karşılaştırma Deyimleri

Program içerisinde bazen iki veya daha fazla değerin karşılaştırılması gerekebilir. Bunun için, bütün programlama dillerinde karşılaştırma deyimleri mevcuttur. C dili, if, switch ve ? olmak üzere üç tip karşılaştırma işlemi yapmaya izin verir. Ancak ? bir operatördür. if karşılaştırma deyimi ile, diğer programlama dilinde olduğu gibi if-else yapısı da kurulabilir. switch deyimi, bir değişkenin içeriğine göre program akışını yönlendirir.

C dilinde, bir mantıksal işlemin sonucu tamsayı 0 (sıfır) veya başka bir değer olur. 0 olumsuz 0’dan farklı değerler olumlu olarak yorumlanır. Buna göre, aşağıdaki program parçasının …

int x = 1,
y = 2, s, u, z;
s = 2 > 1; u = x > 3;
z = x <= y && y >0;
printf(“%d\t%d\t%d”, s, u, z); …

1 0 1
şeklinde olur. Bunun nedeni:  2 her zaman 1 den büyük olduğu için s değişkenine 1,  x = 1 < 3 olduğu için x değişkenine 0,  z = x <= y && y >0; eşitliğin sağtarafının sonucu olumlu olduğu için z değişkenine 1 atanır.
if, if-else Yapısı
Bu deyimler, koşullu işlem yapan deyimlerdir. if ve else tek bir karşılaştırma deyimi olup else kullanımı isteğe bağlıdır. Eğer bu koşul olumlu ise if den sonraki bölüm yürütülür ve else den sonraki bölüm atlanır. Koşul olumsuz ise if den sonraki küme atlanır ve eğer varsa, else den sonraki kümedeki işlemler gerçekleştirilir.
if deyiminin yapının genel biçimi şöyledir:
if(koşul)
{
… deyimler;
(küme) …
}

if deyimi kullanılırken kümenin başlangıcı ve bitişini gösteren, küme parantezleri kullanılmasında kullanıcıya bir esneklik sunulmuştur. Eğer if deyiminden sonra icra edilecek deyimler tek satırdan oluşuyorsa, bu işaretlerin kullanılması zorunlu değildir. Yani, if deyimden sonra { ve } işaretleri kullanılmamışsa, bu deyimi takip eden sadece ilk satır işleme konur. Bu durum, else if, else deyimlerinde ve daha sonra işlenecek for ve while gibi döngü deyimlerinde de geçerlidir.
Buna göre aşağıdaki kullanım
if(x == y)
{
puts(“x ve y esit”);
}
ile
if(x == y)
puts(“x ve y esit”);

eşdeğerdir. if deyiminin else ile birlikte kullanımı şu şekildedir:
if(koşul)
{
… deyimler;
(küme1) …
}
else
{
… deyimler; (küme2) …

}

Bir sayi girin: 3 sayi tektir.
Mantıksal Operatörler kullanarak birden çok karşılaştırma birleştirilebilir. Aşağıdaki programda en iyi örneklerden birtanesidir. Program, bir yılın artık yıl olup olmadığını sınar. Bir yıl içinde, Şubat ayı 29 gün olursa o yıl artık yıl olarak adlandırılır. Artık yıl peryodik olarak 4 yılda bir gelir. 1800 artık yıl değildir. Genel sorgulama söyle olmalıdır:
Eğer bir yıl
4 ile tam bölünüyorsa VE 100’e tam bölünmüyorsa VEYA
400 ‘e tam bölünüryorsa o yıl artık yıldır.

ÇIKTI
Bir yil girin: 1996
1996 artik yil

Eğer program içinde kullanılacak koşulların sayısı ikiden çok ise aşağıdaki yapı kullanılır:
if(koşul_1)
{

deyimler; (küme_1)

}
else if(koşul_2)
{

deyimler; (küme_2)

}
. . . else if(koşul_n-1)
{
… deyimler; (küme_n-1)

}
else
{
… deyimler; (küme_n)

}


switch – case Yapısı

Bu deyim bir değişkenin içeriğine bakarak, programın akışını bir çok seçenekten birine yönlendirir. case (durum) deyiminden sonra değişkenin durumu belirlenir ve takip eden gelen satırlar (deyimler) işleme konur. Bütün durumların aksi söz konu olduğunda gerçekleştirilmesi istenen deyimler default deyiminden sonraki kısımda bildirilir. Genel yazım biçimi:

switch(değişken)
{
case sabit1:

deyimler;

case sabit2:

deyimler;

.
.
.
case sabitn:

deyimler;

default:

hata deyimleri veya varsayılan deyimler;

}

ÇIKTI
Lutfen bir karakter girin
a
a harfine bastiniz
b harfine bastiniz
a veya b ye basmadiniz.

ÇIKTI
Lutfen bir karakter girin
a
a harfine bastiniz

? Karşılaştırma Operatörü
Bu operatör, if-else karşılaştırma deyiminin yaptığı işi sınırlı olarak yapan bir operatördür. Genel yazım biçimi:
(koşul) ? deyim1 : deyim2;
İlk önce koşul sınanır. Eğer koşul olumluysa deyim1 aksi takdirde deyim2 değerlendirilir. deyim1 ve deyim2 de atama işlemi yapılamaz. Ancak koşul deyiminde atama işlemi yapılabilir. deyim1 vedeyim2 yerine fonksiyon da kullanılabilir. Aşağıda bu deyimin kullanımına ait örnekler verilmiştir.
x = ( a > b ) ? a : b;
Yukarıdaki ifadede koşul a’nın b’den büyük olmasıdır. Eğer olumluysa x adlı değişkene a, değilse b değeri atanır. Bu şekilde kullanım if-else yapısı ile kurulmak istenirse:
if( a > b ) x = a;
else x = b;

ÇIKTI
x : 3
y : 5
z = 0.600000

[Toplam: 0   Ortalama: 0/5]
Yorum Yapmak İçin Tıklayın

Yorum Yapın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

To Top