10 Haziran 2015 Çarşamba

C Programlama Ders 5 - IF Else Yapısı

Bu yapı programa koşullar verip , koşulların gerçekleşmesine göre programın yönelmesini sağlamak için kullanılır. Bu koşulları sağlarken bir önceki derste kullandığımız mantıksal ve karşılaştırma operatörlerini kullanacağız.

Kullanımı aşağıdaki gibidir:

if(koşul){
 işlemler
}

Örnek verelim:

int x=7,a;
if(x>3){
a=5;         /* Burada x in 3 den büyük olduğunda if yapısındaki işlemlerin gerçekleşeceği  anlamına    gelir , yani a=5 olur.*/
}

Eğer x < 3 olsaydı:



int x=-3,a;
if(x>3){
a=5;   /* Burada x 3 den küçük olduğundan şart sağlanmaz , bu yüzden x if yapısındaki işlemler dikkate alınmadan program devam eder */
}

Başka bir örneği inceleyelim :

int x,a;
scanf("%d",&x);

if(x>10){
 a=6;
}
if(x<10){
a=5;
}

// Burada kullanıcıdan bir x sayısı girmesini istiyoruz eğer x>10 ise ilk if işlemleri , x<10 ise ikinci if işlemleri çalışacaktır. Eğer x=10 ise hiç bir if satırı çalışmayacaktır.

Başka bir örneği inceleyelim :

int x;
scanf("%d",&x);

if(x>10 && x<15){
printf("%d",x);
}

/* Burada && operatörü iki şartında bağlar , yani iki şartta geçerli olmalıdır eğer  x>10 ve x<15 ise ekrana x in değerini yazdırır. x= 13 için ekrana 13 yazar, x=15 için 2. şart sağlanmadığından if yapısındaki işlem çalışmayacaktır. */

Başka bir örneği inceleyelim :

int x,a;
scanf("%d",&x);

if(x>10){
a=6;
}
if(x>15){
a=3;
}

/* Burada programın yukarıdan aşağıya doğru derlendiğine dikkat etmek gerekiyor. Eğer x>10 ise ilk if satırı çalışır ve a=6 olur , fakat x 15 tende buyuk ise ikinci if satırı çalışır ve a=3 olur. Yani x=13 ise a=6 olacaktır. x=17 ise a=3 olur.*/

int x,a;
scanf("%d",&x);

if(x>10){
a=6;
}

printf("%d",a); 

if(x>15){
a=3;
}

printf("%d",a); 

/* x=17 iken araya bir prinf koyarsak ilk ekrana 6 yazdırır sonraki if şartı da sağlandığından ekrana 3 yazdırır. */

ELSE

Kullanımı aşağıdaki gibidir:

if(koşul){
işlemler
}
else{
işlemler
}

Else, if şartına bağlı olarak çalışır . if deki koşul gerçekleşmediğinde else deki ifade işleme sokulur.

Örnek verelim:

int x,a;
scanf("%d",&x);

if(x>34){
a=43;
}
else{
a=1;
}

/* Burada x>34 ise  a=43 olur, eğer x> 34 değilse yani if teki koşul sağlanmadı ise a=1 olur. */

Başka bir örneği inceleyelim :

int x;
scanf("%d",&x);

if(x>=45){
printf("Gecti");
}
else{
printf("Kaldı");
}

/* Burada x>=45 ( x 45 den büyük  veya eşit) ise  ekrana geçti yazar, eğer değilse ekrana kaldı yazar.*/

ELSE-IF

Kullanımı aşağıdaki gibidir:

if(koşul){
işlemler
}
else if(koşul){
işlemler
}
else{
işlemler
}

/* Else-if  de de koşul vardır , if ten farkı , else if in if e bağlı olmasıdır. Yani ilk if şartına bakılır , koşul sağlandıysa diğer şartlar okunmaz koşul sağlanmadı ise bir sonraki şarta yani else if e bakılır , bu koşulda sağlanmadı ise en son else bakılır*/

Örnek verelim:

if(x>10){
a=3;
}
else if(x<10){
a=2;
}
else{
a=1;
}

/* Burada program yukarıdan aşağıya doğru okuyacaktır. İlk if te x>10 ise a=3 olacaktır . Eğer değilse ikinci şarta bakacaktır. x<10 mu? değilse en son else durumuna bakacaktır . Yani x=14 ise a=3, x=2 ise a=2 , x=10 ise a= 1 olacaktır */

Başka bir örneği inceleyelim :

#include <stdio.h>
#include <conio.h>

int main(){
int x,y,a,k;
printf("x i giriniz: ");
scanf("%d",&x);
printf("y i giriniz: ");
scanf("%d",&y);
printf("k i giriniz: ");
scanf("%d",&k);

if(x>10 && y==3){
          printf("x = %d\ny = %d\n",x,y);
     }

else if(x<10 || y!=3 ){
 printf("x = %d\ny = %d\n",x,y);
}
else if(k>=7){
 printf("k = %d\n",k);
}
else{
printf("Hello World");
}
return 0;
}

/* x , y, k değerlerimizi kullanıcıdan alıyoruz. ilk if satırındaki koşul x>10 ve y=3 olmalı  aksi taktirde  ikinci if yani x<10 veya y farklı 3 olmalı aksi taktirde 3. if yani k>= 7 olmalı aksi taktirde ekrana hello world yazdırır.  Programın bir amacı yok tabi sadece if kavramını kavramamız için böyle bir örnek yaptım. 

x=15 , y=3 ise k nın bir önemi yoktur ilk if satırı çalışır ve ekrana 15 ile 3 yazar.

x= 9 , y=3  ise ilk if satırı sağlanmaz x<10 dur. İkinci if satırındaki koşul x in 10 dan küçük veya y nin 3 ten farklı olmasıydı. y 3 ten farklı değil ama x<10 olduğundan bu koşul çalışır ve ekrana 9 ve 3 yazar. Eğer x=14 , y=4 olursa yine ikinci if satırı çalışır x<10 değil ama x!= 3 olduğundan koşul sağlanır.

x=10 y=3 k=10 ise ilk koşul sağlanmaz ikinci koşulda x<10 veya y!=3 olmadığından sağlanmaz.Bu yüzden 3. if koşuluna bakılır k>=7 olduğundan ekrana 10 yazacaktır.

x=10 y=3 k=4 ise ilk koşul sağlanmaz ikinci koşulda x<10 veya y!=3 olmadığından sağlanmaz.Bu yüzden 3. if koşuluna bakılır k>=7 koşulu sağlanmadığından else yapısı çalışır ve ekrana Hello World yazar .
  */
Not: 

 Eğer işlemler tek satırda yapılıyorsa süslü parantez kullanmaya gerek yoktur. 

if(x>3) a=5;
else if(x<3) a=4;
else a=2;

gibi ama bu sadece tek satırlık işlemlerde kullanabileceğimizi unutmayınız.

Bu derste de benim söyleyeceklerim bu kadar bir daha ki ders görüşürüz.


Hiç yorum yok:

Yorum Gönder