Home Eğitim C Programlama Dili Dersi #3.1

C Programlama Dili Dersi #3.1

C Programlama Dili Dersi #3.1
185
0

KONTROL YAPILARI VE DÖNGÜLER

Merhaba arkadaşlar C programlama derslerimize uzun bir vize haftası ve ödevler sonrasında kaldığımız yerden , üçüncü dersten , devam ediyoruz.Bu dersimizde koşullu, şartlı ifadeler ve döngüleri sizlerle beraber işleyeceğiz.

If, Else If  Ve Çoklu If Yapıları

If yapısı İngilizce karşılığı olan “eğer” kelimesini programlama dilindeki halidir.
Eğer parantez içinde verilen ifade doğru ise if kontrol yapısının içindeki komutları çalıştırır, doğru değilse kontrolden çıkıp programa devam eder.Örnek yapısı;

if (şartlar){
Komut1;
Komut2;
Komut3;
}

 

Örnek: k=5 ve c=2 sayılarını kıyaslayalım ve c sayısı 5 olana kadar arttıralım.

If(k!=c){
c++;
printf(“C sayısı 1 arttırıldı.”);
}

 

İf kontrol yapısı bize karşılaştırma yapmamızı , şart ve koşul koymamızı ve ya bir işlemi belli bir sınıra kadar yapıp yapmamamızı söyler.
Peki if in parantezlerinin içine sadece bir şart mı yazabiliyoruz ?
Tabi ki hayır . Ve , veya operatörleri yardımıyla birden fazla şart yazabiliyoruz.
Örnek

if(a==5 && s==3)

if(a==5 || s==3)

 

Birinci durumda : a değişkeni 5 ve s değişkeni 3 olduğu durumunda if içindeki kodlar çalışır , eğer ikisinden biri doğru olmazsa çalışmaz
İkinci durumda:  a değişkenin 5 olması veya s değişkeninin 3 olması durumuna bakar . iki şarttan biri doğru olduğu zaman ifin içindeki komutlar çalışır.

 

Peki mesela not sistemleri puan aralıklar onlar nasıl olacak ? A,B,C,D,E,F gibi harflendirme notları için bir şart yetmez.
Bunun için ise else,else- if yapısı ve ya çoklu if yapısı var.

Örnek 1:

if(Not < 30){

printf(“harf notunuz F);

} else if( not > 30 && not < 50){

printf(“harf notunuz D“);

} else if(not >50 && not < 65){
printf(“harf notunuz C”);
} //Örneği fazla uzatmamak için devam etmiyorum aynı şekilde A ve B harf aralıkları içinde else if şartı aynı şekilde yapılır. 

 

Örnek 2:

if(a < 3){
Printf(“ben 1. İf döngüsüyüm”);
}
if(a < 5 ){
Printf(“ben 2. İf döngüsüyüm”); 

 

Bu kodun sonucunda hem birinci hem de ikinci if çalışır bu yüzden çıktı olarak
“Ben 1.if döngüsüyüm. Ben 2.if döngüsüyüm” cümlesini elde ederiz. Çoklu if , else if ile burada ayrılıyor . else if de ilk doğru hangi şartta sağlandıysa o yapı çalışıyor diğer yapılar doğru olsa bile çalışmıyor.

 

Switch ve Switch Case Yapıları

Bir programda çok fazla kontrol varsa ve bunların sonucunda gerçekleştirilecek olan işlemler de fazlaysa bu durumda switch deyiminden yardım alabiliriz.  Switch deyimi, içine parametre olarak aldığı ifadeye göre bir sonuca karar verir.
Tanımlanışı şu şekildedir:

Switch(ifade){
Case “ifadenin karşılığı,türevi”:
İşlem
Break;

Hemen bir örnek yaparak daha da pekiştirelim.

Örnek: Girdiğiniz mevsimin aylarını gösteren programı yazalım

Char mevsim = kıs;
Switch (mevsim){
case ‘Sonbahar’:
printf(“Sonbaharın mevsimleri : Eylül,Ekim,Kasım.”);
break;
case ‘Kıs’:
printf(“Kışın mevsimleri : Aralık,Ocak,Şubat.”);
break;
case ‘İlkbahar’:
printf(“İlkbaharın mevsimleri : Mart,Nisan,Mayıs.”);
break;
case ‘Yaz’:
printf(“Yazın mevsimleri : Haziran,Temmuz,Ağustos.”);
break;
default:
printf(“Böyle bir mevsim yok / yanlış mevsim girdiniz.”);
}

 

Default ise verilen ifade , case şartlarımızdan hiç biriyle uyuşmadığı zaman ortaya çıkan durumu önlemek amacıyla kullanılır. Eğer şartlar uyuşmuyorsa defaultun içindeki kısım çalışır. Her caseden sonra eğer break; yazmazsak doğru olan case ve sonraki tüm caseleri çalıştırır.

 

While Döngüsü

En temel döngü tiplerimizden bir tanesidir. İçindeki şart sağlanmayana kadar döngü dönmeye devam eder.
Örnek :

int t=7;
while(t<10){

t++;

}

 

t sayısı 10dan küçük olmayana kadar bu döngü devam eder her seferinde t bir artar ve döngü başa döner.

Örnek : While ile verilen sayının faktöriyelini hesaplayan programı yazalım

int main( void ) {

int i = 0, toplam_deger = 0;

int n; printf("Lütfen n değerini giriniz> ");
scanf("%d",&n);
while( i <= n ) {
toplam_deger += i*i;
i++;
}
printf("Sonuç: %d\n",toplam_deger);
return 0;
}

 

Do While Döngüsü

Normal while döngüsüne benzer ancak aralarında önemli bir fark vardır.
While çalıştırıldığında birinci seferde kontrol yapılır doğruysa ona göre devam ederdi ancak do-while de birinci seferde kontrol yapılmıyor direk doğru sayılıp işlem yapılıyor ve ikinci defa çalışmak için whilenin başına gidilip kontrol yapılıyor.
Örnek:

int i=15;
Do {
i--;
}
While(i<10);

Burada 15 , 10 sayısından küçük olmasa da önce i yi bir azaltıp daha sonra whileye gidip kontrol yapmaya başlayacaktır.

 

For Döngüsü

For döngüsü en çok kullanılan döngülerden bir tanesidir. Gerek dizi yazdırmada gerek yıldızlı üçgenli şekiller yapmada for döngüsü daha çok tercih edilir. For döngüsü genelde 3 parametre alır . Eğer parametrelerden birini vermezseniz bile noktalı virgül koymak zorundasınız.

Yapısı :

For(başlangıç şartı;bitiş ve ya ilerleme şartı;artış, azalış miktarı){
Komutlar;
}

 

Örnek : belirli bir aralıktaki sayıların toplamını bulan programı yapalım

int toplam=0;
int sayi=6
int i = 0;
for(int i=0;i<sayi;i++){
toplam+=sayi;
}

For döngüsü her defasında içindeki şarta bakarak döner sayının , i değişkeninden büyük olup olmadığına bakar ve eğer sayı daha büyükse , her seferinde i değişkenini bir arttırır.

Örnek 2: 1-10 arasındaki çift sayıları gösterelim

int i =0;
for(i=0;i<10;i+=2){
printf(“%d”,i);
}

Arttırma şartını 2 olarak belirleyince i sayısı ikişer ikişer arttı bu da zaten bizim istediğimiz çift olma şartını sağlıyor
0-2-4-6-8

Nested(iç içe ) for döngüleri

For döngüleri iç içe olacak şekilde de kullanılabilir.

int i=0;
int j=0;
for(i=0;i<10;i++) {
for(j=0;j<5;j++){
printf(“Kaç kere yazacak bakalım”);
  }
}

Bu döngü sonucunda toplam 50 kere aynı çıktıyı verir.
Ders sonunda nested looplarla şekilli örnekler vereceğim.

185 kez okundu.

Bedirhan Yıldırım 1996 yılında İstanbul‘da doğdum. Haydarpaşa Anadolu Teknik Lisesi Bilişim Teknolojileri bölümünden mezun oldum ve Fatih Sultan Mehmet Vakıf Üniversitesi Bilgisayar Mühendisliği bölümünde eğitim görmekteyim. Lisede bilgisayar konusunda kendimi geliştirmeye başladım ve tasarım alanında; photoshop, illustrator, after effect ve cinema 4D, internet alanında; html, css, jquery ve php kodlamayı öğrendim. Ardunio dünyasını keşfettikten sonra java ve c++ kodlama dillerini öğrenmeye başladım. Donanıma olan merakla kendimi robotik konusunda geliştiriyorum.

Yorum Yapın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir