exploit paylaşım grubumuz: t.me/HTTPwnn

mala anlatır gibi C 4 karar yapıları

Katılım
16 Haz 2026
Mesaj
111
Reaksiyon
83
xentr_thread_starter
KARAR YAPILARI (if, else, else if, switch-case)

Önceki bölümlerde değişkenleri ve operatörleri öğrendik.

Ancak şimdiye kadar yazdığımız programların büyük bir eksikliği vardı.

Program her zaman aynı şeyi yapıyordu.

Örneğin:

printf("Merhaba");

Bu kod çalıştığında sonuç her zaman aynıdır.

Ama gerçek programlar böyle çalışmaz.

Bir banka uygulaması, oyun, web sunucusu veya işletim sistemi sürekli karar verir.

Örneğin:

  • Şifre doğru mu?
  • Kullanıcı admin mi?
  • Yaş 18'den büyük mü?
  • Dosya var mı?
  • İnternet bağlantısı var mı?
İşte bu kararları vermemizi sağlayan yapılar:

if
else
else if
switch-case

yapılarıdır.


KARAR YAPISI NEDİR?

Programın belirli bir koşula göre farklı davranmasını sağlar.

Örneğin:

Eğer yağmur yağıyorsa şemsiye al.

Yağmıyorsa alma.

Programlama mantığında:

Eğer koşul doğruysa A

Değilse B

şeklindedir.


IF YAPISI

En temel karar mekanizmasıdır.

Yapısı:

if(kosul)
{
çalışacak kodlar
}

Örnek:

int yas = 20;

if(yas >= 18)
{
printf("Yetiskinsiniz");
}

Sonuç:

Yetiskinsiniz

Çünkü 20, 18'den büyüktür.


KOŞUL YANLIŞSA NE OLUR?

if(3 > 10)
{
printf("Calis");
}

Bilgisayar 3 > 10 kontrolünü yapar.

Sonuç FALSE olur.

Bu yüzden ekrana hiçbir şey yazılmaz.


ELSE YAPISI

Koşul yanlışsa çalışır.

Örnek:

int yas = 15;

if(yas >= 18)
{
printf("Yetiskin");
}
else
{
printf("Cocuk");
}

Çıktı:

Cocuk


ELSE IF YAPISI

Birden fazla ihtimal varsa kullanılır.

Örnek:

int not = 75;

if(not >= 90)
{
printf("AA");
}
else if(not >= 80)
{
printf("BA");
}
else if(not >= 70)
{
printf("BB");
}
else
{
printf("FF");
}

Sonuç:

BB

Çünkü ilk iki koşul yanlış, üçüncü koşul doğrudur.


MANTIKSAL OPERATÖRLERLE KULLANIM

AND (&&)

if(yas >= 18 && yas <= 30)
{
printf("Basvuru Kabul");
}

Burada iki koşulun da doğru olması gerekir.

OR (||)

if(admin == 1 || moderator == 1)
{
printf("Yetkili");
}

Koşullardan birinin doğru olması yeterlidir.

NOT (!)

if(!giris)
{
printf("Giris Yap");
}

Anlamı:

Giriş yapılmamışsa.


İÇ İÇE IF

int yas = 25;
int ehliyet = 1;

if(yas >= 18)
{
if(ehliyet == 1)
{
printf("Arac Kullanabilir");
}
}

Burada önce yaş kontrol edilir.

Yaş uygunsa ehliyet kontrol edilir.


SWITCH CASE

Bir değişkenin birçok farklı değeri varsa kullanılır.

Örnek:

int gun = 2;

switch(gun)
{
case 1:
printf("Pazartesi");
break;

case 2:<br> printf("Sali");<br> break;<br><br>case 3:<br> printf("Carsamba");<br> break;<br>
}

Sonuç:

Sali


BREAK NEDEN KULLANILIR?

switch(1)
{
case 1:
printf("A");

case 2:<br> printf("B");<br><br>case 3:<br> printf("C");<br>
}

Çıktı:

ABC

Çünkü break kullanılmadı.

Doğru kullanım:

switch(1)
{
case 1:
printf("A");
break;

case 2:<br> printf("B");<br> break;<br>
}

Bu durumda sadece A yazdırılır.


DEFAULT

switch(secim)
{
case 1:
printf("Menu 1");
break;

case 2:<br> printf("Menu 2");<br> break;<br><br>default:<br> printf("Gecersiz Secim");<br>
}

Hiçbir durum eşleşmezse default çalışır.


TERNARY OPERATÖR

Normal kullanım:

if(yas >= 18)
{
printf("Yetiskin");
}
else
{
printf("Cocuk");
}

Kısa kullanım:

yas >= 18 ? printf("Yetiskin") : printf("Cocuk");


YAYGIN HATALAR

Hata:

if(x = 5)

Bu karşılaştırma değildir.

Atamadır.

Doğrusu:

if(x == 5)

Bir diğer hata:

if(x > 10);
{
printf("Calisti");
}

Noktalı virgül if bloğunu bitirir.

Bu yüzden kod her zaman çalışır.


MİNİ PROJE - KULLANICI GİRİŞ SİSTEMİ

#include <stdio.h>

int main()
{
int sifre;

printf("Sifre Gir: ");<br>scanf("%d",&amp;sifre);<br><br>if(sifre == 1234)<br>{<br> printf("Giris Basarili");<br>}<br>else<br>{<br> printf("Hatali Sifre");<br>}<br><br>return 0;<br>
}


BÖLÜM ÖZETİ

Bu bölümde:

  • if yapısını
  • else kullanımını
  • else if zincirlerini
  • mantıksal operatörleri
  • iç içe if yapılarını
  • switch-case kullanımını
  • break ve default kavramlarını
  • ternary operatörünü
  • yaygın hataları
öğrendik.

Bir sonraki bölümde döngüler (for, while, do-while), break, continue ve iç içe döngüleri inceleyeceğiz.
 
KARAR YAPILARI (if, else, else if, switch-case)

Önceki bölümlerde değişkenleri ve operatörleri öğrendik.

Ancak şimdiye kadar yazdığımız programların büyük bir eksikliği vardı.

Program her zaman aynı şeyi yapıyordu.

Örneğin:

printf("Merhaba");

Bu kod çalıştığında sonuç her zaman aynıdır.

Ama gerçek programlar böyle çalışmaz.

Bir banka uygulaması, oyun, web sunucusu veya işletim sistemi sürekli karar verir.

Örneğin:

  • Şifre doğru mu?
  • Kullanıcı admin mi?
  • Yaş 18'den büyük mü?
  • Dosya var mı?
  • İnternet bağlantısı var mı?
İşte bu kararları vermemizi sağlayan yapılar:

if
else
else if
switch-case

yapılarıdır.


KARAR YAPISI NEDİR?

Programın belirli bir koşula göre farklı davranmasını sağlar.

Örneğin:

Eğer yağmur yağıyorsa şemsiye al.

Yağmıyorsa alma.

Programlama mantığında:

Eğer koşul doğruysa A

Değilse B

şeklindedir.


IF YAPISI

En temel karar mekanizmasıdır.

Yapısı:

if(kosul)
{
çalışacak kodlar
}

Örnek:

int yas = 20;

if(yas >= 18)
{
printf("Yetiskinsiniz");
}

Sonuç:

Yetiskinsiniz

Çünkü 20, 18'den büyüktür.


KOŞUL YANLIŞSA NE OLUR?

if(3 > 10)
{
printf("Calis");
}

Bilgisayar 3 > 10 kontrolünü yapar.

Sonuç FALSE olur.

Bu yüzden ekrana hiçbir şey yazılmaz.


ELSE YAPISI

Koşul yanlışsa çalışır.

Örnek:

int yas = 15;

if(yas >= 18)
{
printf("Yetiskin");
}
else
{
printf("Cocuk");
}

Çıktı:

Cocuk


ELSE IF YAPISI

Birden fazla ihtimal varsa kullanılır.

Örnek:

int not = 75;

if(not >= 90)
{
printf("AA");
}
else if(not >= 80)
{
printf("BA");
}
else if(not >= 70)
{
printf("BB");
}
else
{
printf("FF");
}

Sonuç:

BB

Çünkü ilk iki koşul yanlış, üçüncü koşul doğrudur.


MANTIKSAL OPERATÖRLERLE KULLANIM

AND (&&)

if(yas >= 18 && yas <= 30)
{
printf("Basvuru Kabul");
}

Burada iki koşulun da doğru olması gerekir.

OR (||)

if(admin == 1 || moderator == 1)
{
printf("Yetkili");
}

Koşullardan birinin doğru olması yeterlidir.

NOT (!)

if(!giris)
{
printf("Giris Yap");
}

Anlamı:

Giriş yapılmamışsa.


İÇ İÇE IF

int yas = 25;
int ehliyet = 1;

if(yas >= 18)
{
if(ehliyet == 1)
{
printf("Arac Kullanabilir");
}
}

Burada önce yaş kontrol edilir.

Yaş uygunsa ehliyet kontrol edilir.


SWITCH CASE

Bir değişkenin birçok farklı değeri varsa kullanılır.

Örnek:

int gun = 2;

switch(gun)
{
case 1:
printf("Pazartesi");
break;

case 2:<br> printf("Sali");<br> break;<br><br>case 3:<br> printf("Carsamba");<br> break;<br>
}

Sonuç:

Sali


BREAK NEDEN KULLANILIR?

switch(1)
{
case 1:
printf("A");

case 2:<br> printf("B");<br><br>case 3:<br> printf("C");<br>
}

Çıktı:

ABC

Çünkü break kullanılmadı.

Doğru kullanım:

switch(1)
{
case 1:
printf("A");
break;

case 2:<br> printf("B");<br> break;<br>
}

Bu durumda sadece A yazdırılır.


DEFAULT

switch(secim)
{
case 1:
printf("Menu 1");
break;

case 2:<br> printf("Menu 2");<br> break;<br><br>default:<br> printf("Gecersiz Secim");<br>
}

Hiçbir durum eşleşmezse default çalışır.


TERNARY OPERATÖR

Normal kullanım:

if(yas >= 18)
{
printf("Yetiskin");
}
else
{
printf("Cocuk");
}

Kısa kullanım:

yas >= 18 ? printf("Yetiskin") : printf("Cocuk");


YAYGIN HATALAR

Hata:

if(x = 5)

Bu karşılaştırma değildir.

Atamadır.

Doğrusu:

if(x == 5)

Bir diğer hata:

if(x > 10);
{
printf("Calisti");
}

Noktalı virgül if bloğunu bitirir.

Bu yüzden kod her zaman çalışır.


MİNİ PROJE - KULLANICI GİRİŞ SİSTEMİ

#include <stdio.h>

int main()
{
int sifre;

printf("Sifre Gir: ");<br>scanf("%d",&amp;sifre);<br><br>if(sifre == 1234)<br>{<br> printf("Giris Basarili");<br>}<br>else<br>{<br> printf("Hatali Sifre");<br>}<br><br>return 0;<br>
}


BÖLÜM ÖZETİ

Bu bölümde:

  • if yapısını
  • else kullanımını
  • else if zincirlerini
  • mantıksal operatörleri
  • iç içe if yapılarını
  • switch-case kullanımını
  • break ve default kavramlarını
  • ternary operatörünü
  • yaygın hataları
öğrendik.

Bir sonraki bölümde döngüler (for, while, do-while), break, continue ve iç içe döngüleri inceleyeceğiz.
eline sağlık
 
Geri
En Üst