C++ KARAR YAPILARI
Karar yapıları, belirli şartların sağlanıp sağlanmadığını kontrol ederek, program akışını yönlendirir. Örneğin, bir kullanıcının girdiği sıcaklık değerine göre suyun hangi hâlde bulunduğunu ekrana yazdırabiliriz. Bu, bir algoritmanın dinamik çalışma mantığını anlamak için temel bir çalışmadır.
1. If – Else Mantığı
En temel karar yapısı olan if – else, belirli bir koşulun sağlanması veya sağlanmaması durumunda farklı işlevlerin yerine getirilmesini sağlar. Kod yapısı aşağıdaki gibidir:
if (koşul) {
// Koşul sağlanırsa bu kod çalışır.
} else {
// Koşul sağlanmazsa bu kod çalışır.
}
2. If – Else If – Else
Birden fazla koşulu kontrol etmek için “else if” yapısı devreye girer. Bu yapı, daha karmaşık mantıkları ele almak için son derece kullanışlıdır.
Bir örnek olarak, klavyeden girilen bir sıcaklık değerine göre suyun hangi hâlde bulunduğunu belirleyen kodu inceleyelim:
#include <iostream>
using namespace std;
int main() {
int sicaklik;
cout << "Sıcaklık değerini girin: ";
cin >> sicaklik;
if (sicaklik < 0)
cout << "Katı";
else if (sicaklik >= 0 && sicaklik < 100)
cout << "Sıvı";
else if (sicaklik >= 100 && sicaklik < 10000)
cout << "Gaz";
else
cout << "Plazma";
return 0;
}
3. Switch Case Yapısı
Switch case, bir değişkenin birden fazla durumu kontrol edilerek çalışan bir karar yapısıdır. Bu yapı, “if-else” bloklarından daha okunabilir bir kod yazımı sunar. Örneğin, bir hesap makinesinde toplama, çıkarma, çarpma ve bölme işlemlerini yapan bir kod parçası yazabiliriz:
#include <iostream>
using namespace std;
int main() {
char islem;
cout << "Yapılacak işlemi giriniz (+, -, *, /): ";
cin >> islem;
switch (islem) {
case '+':
cout << "Toplama işlemi";
break;
case '-':
cout << "Çıkarma işlemi";
break;
case '*':
cout << "Çarpma işlemi";
break;
case '/':
cout << "Bölme işlemi";
break;
default:
cout << "Hatalı giriş.";
}
return 0;
}
ÖRNEKLER
- sıcaklık<0 ise katı
- Sıcaklık 0 ile 100 arasında ise sıvı
- Sıcaklık 101 ile 10000 arasında ise gaz
- Sıcaklık 10000’den büyük ise plazma.
#include <iostream>
using namespace std;
int main() {
int sicaklik;
cout << "Sicaklik degerini girin: ";
cin >> sicaklik;
if (sicaklik < 0) // Sıcaklık 0'dan küçükse
cout << "Kati";
else if (sicaklik >= 0 && sicaklik < 100) // Sıcaklık 0 ile 100 arasında ise
cout << "Sivi";
else if (sicaklik >= 100 && sicaklik < 10000) // Sıcaklık 100 ile 10000 arasında ise
cout << "Gaz";
else // Sıcaklık 10000'den büyükse
cout << "Plazma";
return 0; // Program başarılı bir şekilde sona erdi.
}
- ortalama>=50 ise öğrenci geçer
- 70<=ortalama<85 ise öğrenci teşekkür belgesi alır.
- ortalama>=85 ise öğrenci takdir belgesi alır.
#include <iostream>
using namespace std;
int main() {
int puan; // Öğrenci notu
cout << "Notu giriniz: ";
cin >> puan;
if (puan < 50) // Eğer puan 50'den küçükse öğrenci kalır
cout << "Kaldi";
else if (puan >= 50 && puan < 70) // Eğer puan 50 ile 70 arasındaysa (70 hariç)
cout << "Belge yok";
else if (puan >= 70 && puan < 85) // Eğer puan 70 ile 85 arasındaysa (85 hariç)
cout << "Tesekkur belgesi";
else if (puan >= 85 && puan <= 100) // Eğer puan 85 ile 100 arasındaysa
cout << "Takdir belgesi";
else // Geçersiz bir puan girildiyse
cout << "Hatali giris";
return 0; // Program başarılı bir şekilde sona erdi
}
- 4 işlem hesap makinesi yapalım.
#include <iostream>
using namespace std;
int main()
{
char islem;
cin >> islem;
switch(islem)
{
case '+':
cout << "Toplama islemi";
break;
case '-':
cout << "Cikarma islemi";
break;
case '*':
cout << "Carpma islemi";
break;
case '/':
cout << "Bolme islemi";
break;
default:
cout << "Hatali giris.";
}
return 0;
}