Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
Karar Yapıları Karar yapıları öne sürülen koşulun doğru veya yanlış sonuç vermesine göre farklı kod bloklarını yürüten fonksiyonlardır. Döngülerdeki koşul döngünün devam edip etmemesini sağlıyordu. İf İf … else Switch Yapıları verilecektir.
İf karar ifadesi İf ifadesi karar ifadelerinin en basitidir. İf fonksiyonundan sonra koşul ifadesi test edilir. Eğer ifade doğru sonuç verirse if bloğundaki ifadeler yürütülür. // IF ifadesine basit bir örnek #include using namespace std; int main() { int x; cout > x; if( x > 100 ) cout << “ Sayı 100 den büyüktür \n”; return 0; }
Sınama deyimi if gövdesi çıkış Yanlış Doğru
// IF ifadesine basit bir örnek #include using namespace std; int main() { int x; cout > x; if( x > 100 ) { cout << “ Sayı “<<x; cout<< “ 100 den büyüktür \n”; } return 0; }
Döngü içerisindeki İf yapısı #include using namespace std; #include //for exit() int main() { unsigned long n, j; cout << “Enter a number: ”; cin >> n; //get number to test for(j=2; j <= n/2; j++) //divide by every integer from if(n%j == 0) //2 on up; if remainder is 0, { //it’s divisible by j cout << “It’s not prime; divisible by ” << j << endl; exit(0); //exit from the program } cout << “It’s prime\n”; return 0; }
İf (x>100) fade; Else ifade; Koşul ifadesi Koşul doğru sonuç vermiş ise yürütülecek tek ifade Koşul yanlış(false) sonuç vermiş ise yürütülecek tek ifade İf(delta !=0) { ifade; } Else { ifade; } Koşul doğru sonuç vermiş ise yürütülecek ifadeler Koşul yanlış(false) sonuç vermiş ise yürütülecek ifadeler Koşul ifadesi
// if else örneği #include using namespace std; int main() { int x; cout << “\n Sayı gir …: ”; cin >> x; if( x > 100 ) cout << “ Girilen sayı 100 den büyüktür 100 \n”; else cout << “Girilen sayı 100 den büyük değildir \n”; return 0; } if (x == 100) cout << “x =100"; else cout << “x eşit değil 100";
Sınama deyimi İf bloğu ifadeleriElse bloğu ifadeleri çıkış Yanlış Doğru
// kelime ve karakter sayma #include using namespace std; #include // getche() için int main() { int harfsayac=0; int kelimesayac=1; char ch = ‘a’; //‘\r’ olmamalı cout << “bir cümle giriniz.: ”; while( ch != ‘\r’ ) //enter tusuna basana kadar dön { ch = getche(); //bir karakter oku if( ch==’ ‘ ) // eğer karakter boşluk ise kelimesayac++; // kelime sayısını bir artır else // diğer durumda harfsayac++; //harf sayısını bir artır } cout << “\nkelime sayısı=” << kelimesayac << endl << “harf=” << (harfsayac-1) << endl; return 0; }
// kelime ve karakter sayma sürüm 2 #include using namespace std; #include // getche() için int main() { int harfsayac=0; int kelimesayac=1; char ch = ‘a’; //‘\r’ olmamalı cout << “Bir cümle yazınız: ”; while((ch=getche()) != ‘\r’ ) //enter tusuna basana kadar dön { if( ch==’ ‘ ) // eğer karakter boşluk ise kelimesayac++; // kelime sayısını bir artır else // diğer durumda harfsayac++; //harf sayısını bir artır } cout << “\nkelime sayısı=” << kelimesayac << endl << “harf=” << (harfsayac-1) << endl; return 0; }
#include using namespace std; #include //for getche() int main() { char dir=‘a’; int x=10, y=10; cout << “Type Enter to quit\n”; while( dir != ‘\r’ ) //until Enter is typed { cout << “\nYour location is ” << x << “, ” << y; cout << “\nPress direction key (n, s, e, w): ”; dir = getche(); //get character if( dir==‘n’) //go north y--; else if( dir==‘s’ ) //go south y++; else if( dir==‘e’ ) //go east x++; else if( dir==‘w’ ) //go west x--; } //end while return 0; } //end main
int main() { int a, b, c; cout > a >> b >> c; if( a==b ) if( b==c ) cout << “a, b, and c are the same\n”; else cout << “a and b are different\n”; return 0; } int main() { int a, b, c; cout > a >> b >> c; if( a==b ) if( b==c ) cout << “a, b, and c are the same\n”; else cout << “a and b are different\n”; return 0; }
int main() { int a, b, c; cout > a >> b >> c; if( a==b ) { if( b==c ) cout << “a, b, and c are the same\n”; } else cout << “a and b are different\n”; return 0; }
İf …. Else if yapısı if (x == 1) { cout << "x = 1"; } else if (x == 2) { cout << "x = 2"; } else { cout << “ X değeri bilinmiyor"; }
// if … else if yapısı için örnek #include using namespace std; #include int main() { char yon=’a’; int x=10, y=10; cout << “ Çıkış için Enter’a bas \n”; while( yon != ‘\r’ ) // enter tuşuna basana kadar dön { cout << “\n konumunuz..: ” << x << “, ” << y; cout << “\n yön tuşuna basınız(k-kuzey, g-güney, d-doğu, b-batı): ”; yon = getche(); //karakter oku if( yon==‘k’) //Kuzeye git y--; else if( yon==‘g’ ) //güneye git y++; else if( yon==‘d’ ) //doğuya git x++; else if( yon==‘b’ ) //batıya git x--; } //while döngüsünün sonu return 0; }
// platters.cpp // demonstrates SWITCH statement #include using namespace std; int main() { int speed; //turntable speed cout > speed; //user enters speed switch(speed) //selection based on speed { case 33: //user entered 33 cout << “LP album\n”; break; case 45: //user entered 45 cout << “Single selection\n”; break; case 78: //user entered 78 cout << “Obsolete format\n”; break; } return 0; }
switch( x ) { case 1: ifade; break; case 2: ifade; break; case 3: ifade; break; default: ifade; break; } İnteger veya char tipi değişken Not: noktalı virgül koymuyoruz İnteger veya char sabit Birinci durum ifadeleri İkinci durum ifadeleri üçüncü durum ifadeleri default durum ifadeleri Not: noktalı virgül koymuyoruz
Switch Değişkeni birinci duruma eşitse Birinci durum ifadeleri Yanlış Doğru Switch Değişkeni ikinci duruma eşitse Switch Değişkeni üçüncü duruma eşitse İkinci durum fadeleri Yanlış Doğru Yanlış üçüncü durum ifadeleri Default ifadeleri çıkış