if-else Statement - 3
C if-else koşul ifadesinin genel yapisi.And ve or operatörünün if icindeki kısa devre olarak kullanılması.
#include <stdio.h>
#include <stdlib.h>
/* Açıklama : if-else durumu(statement) ayrıntılı incelenmesi. if içindeki
* deyimin sabit değer olması. C de sıfır değeri false, sıfır harici değerler true
* olarak olarak kabul edilir. (5) sayısı ture olduğu gibi (-5) sayısıda true.
* Bundan dolayı if deyimi içine yazılacak -5 sayısı true olacaktır.
* && ve || operatörlerinin kısa devre olması durumu : &&(and-ve) operatörü
* iki terimi işleme sokar. sadece ( true && true ) durumunu true olarak geri döner.
* ilk terim false ise ikinci terim ne olursa olsun sonuç false olur.
* Bundan dolayı ilk terim false elde edilirse ikinci terim işleme girmez.
*
* ||(veya-or) operatörüde sadece ( false || false ) işlmeinde false sonucu verir.
* ilk terim true ise ikinci terim ne olursa olsun işlem true çıkacağı için ikinci
* terim işleme girmez.
*/
int function1()
{
printf("function1\n");
return 10;
}
int function2()
{
printf("function2\n");
return 10;
}
int main(void) {
// (1 < 5) = 1;
{
int buyuk = (1 > 5);
int esit = (5 == 5);
printf("sonuc:%d\n", buyuk);
printf("sonuc:%d\n", esit);
}
/*if deyimi olarak iki durum önemlidir. deyimin sıfır olması false olarak,
* sıfır harici değer olması true olarak değerlendirilir.
* sabit deger ile if denemeleri: if deyiminin sabit değer olması durumu incelendi.
*/
{
if (-10) {
printf("sifir degil\n");
}
else
{
printf("sifir\n");
}
}
//karsilastirma islemleri sonucu elede edilen değer sıfır veya birdir.
//aşağıdaki örnekteki karşılaştırma işlemi sonucu sıfır elde edilir. ve a değeri sıfır gösterir.
{
int a = (5 >= 8);
if( a )
{
printf("a sifir degil(if ici)\n");
}
else
{
printf("a sifir(else ici)\n");
}
}
/* &&(and-ve) operatörünün kısa devre durumu anlatimi
* && operatörününün ilk terimi false ise diğer terim işlenmez.
* aşağıdaki örnekte ilk terim(5 > 7) false döneceği için ikinci terim olan
* ( 6 < 8 ) işlemi sonucuna hiç bakılmaz.
*/
{
if( (5 > 7) && ( 6 < 8) )
{
printf("a sifir degil(if ici)\n");
}
else
{
printf("a sifir(else ici)\n");
}
}
// ||(or-veya) operatörünün kısa devre durumu anlatimi
// || operatörünün ilk terimi true ise ikinci terim işlnemez.
{
if( (5 < 7) || ( 6 < 8) )
{
printf("a sifir degil(if ici)\n");
}
else
{
printf("a sifir(else ici)\n");
}
}
/* && operatörünün kısa devre durumunun fonksiyonlar ile ilgili kısmı.
* && operatörünün ilk terimi false ise ikinci terimi işlemez.
* (15 > function1()) teriminde function1 çağrılır ve terim false döner.
* ilk terim false olduğu için ikinci terimdeki function2 çağrılmaz.
*/
{
if( (15 > function1()) && ( 6 < function2()) )
{
printf("(and if ici)\n");
}
else
{
printf("(and else ici)\n");
}
}
printf("\n\n");
/* || operatörünün kısa devre durumunda. ilk terim true ise ikinci terim işlenmez.
* (5 < function1()) işlmeinde function1 fonksiyonu çağrılır. Ve karşılaştırma işlemi yapılır.
* Karşılaştırma işlemi sonucu true olur. || operatörünün ilk terimi true ise
* ikinci terim işleme girmeyeceği için function2 fonksiyonu çağrılmaz.
*/
{
if( (5 < function1()) || ( 6 < function2()) )
{
printf("(veya if ici)\n");
}
else
{
printf("(veya else ici)\n");
}
}
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
/* Açıklama : if-else durumu(statement) ayrıntılı incelenmesi. if içindeki
* deyimin sabit değer olması. C de sıfır değeri false, sıfır harici değerler true
* olarak olarak kabul edilir. (5) sayısı ture olduğu gibi (-5) sayısıda true.
* Bundan dolayı if deyimi içine yazılacak -5 sayısı true olacaktır.
* && ve || operatörlerinin kısa devre olması durumu : &&(and-ve) operatörü
* iki terimi işleme sokar. sadece ( true && true ) durumunu true olarak geri döner.
* ilk terim false ise ikinci terim ne olursa olsun sonuç false olur.
* Bundan dolayı ilk terim false elde edilirse ikinci terim işleme girmez.
*
* ||(veya-or) operatörüde sadece ( false || false ) işlmeinde false sonucu verir.
* ilk terim true ise ikinci terim ne olursa olsun işlem true çıkacağı için ikinci
* terim işleme girmez.
*/
int function1()
{
printf("function1\n");
return 10;
}
int function2()
{
printf("function2\n");
return 10;
}
int main(void) {
// (1 < 5) = 1;
{
int buyuk = (1 > 5);
int esit = (5 == 5);
printf("sonuc:%d\n", buyuk);
printf("sonuc:%d\n", esit);
}
/*if deyimi olarak iki durum önemlidir. deyimin sıfır olması false olarak,
* sıfır harici değer olması true olarak değerlendirilir.
* sabit deger ile if denemeleri: if deyiminin sabit değer olması durumu incelendi.
*/
{
if (-10) {
printf("sifir degil\n");
}
else
{
printf("sifir\n");
}
}
//karsilastirma islemleri sonucu elede edilen değer sıfır veya birdir.
//aşağıdaki örnekteki karşılaştırma işlemi sonucu sıfır elde edilir. ve a değeri sıfır gösterir.
{
int a = (5 >= 8);
if( a )
{
printf("a sifir degil(if ici)\n");
}
else
{
printf("a sifir(else ici)\n");
}
}
/* &&(and-ve) operatörünün kısa devre durumu anlatimi
* && operatörününün ilk terimi false ise diğer terim işlenmez.
* aşağıdaki örnekte ilk terim(5 > 7) false döneceği için ikinci terim olan
* ( 6 < 8 ) işlemi sonucuna hiç bakılmaz.
*/
{
if( (5 > 7) && ( 6 < 8) )
{
printf("a sifir degil(if ici)\n");
}
else
{
printf("a sifir(else ici)\n");
}
}
// ||(or-veya) operatörünün kısa devre durumu anlatimi
// || operatörünün ilk terimi true ise ikinci terim işlnemez.
{
if( (5 < 7) || ( 6 < 8) )
{
printf("a sifir degil(if ici)\n");
}
else
{
printf("a sifir(else ici)\n");
}
}
/* && operatörünün kısa devre durumunun fonksiyonlar ile ilgili kısmı.
* && operatörünün ilk terimi false ise ikinci terimi işlemez.
* (15 > function1()) teriminde function1 çağrılır ve terim false döner.
* ilk terim false olduğu için ikinci terimdeki function2 çağrılmaz.
*/
{
if( (15 > function1()) && ( 6 < function2()) )
{
printf("(and if ici)\n");
}
else
{
printf("(and else ici)\n");
}
}
printf("\n\n");
/* || operatörünün kısa devre durumunda. ilk terim true ise ikinci terim işlenmez.
* (5 < function1()) işlmeinde function1 fonksiyonu çağrılır. Ve karşılaştırma işlemi yapılır.
* Karşılaştırma işlemi sonucu true olur. || operatörünün ilk terimi true ise
* ikinci terim işleme girmeyeceği için function2 fonksiyonu çağrılmaz.
*/
{
if( (5 < function1()) || ( 6 < function2()) )
{
printf("(veya if ici)\n");
}
else
{
printf("(veya else ici)\n");
}
}
return EXIT_SUCCESS;
}
Hiç yorum yok:
Yorum Gönder