Etiket Arşivi while

do – while döngüsü

Bu yazıda do – while döngüsünden bahsetmeye çalışacağım. do – while, while döngüsüne benzer, fakat koşul ile çalışacak kodların yeri farklıdır. Yani yazım şekli şöyledir:

do{
//calisacak kodlar
}
while(kosul);

Burada, dikkat edilmesi gereken while’dan sonra “;”ün unutulmamasıdır. Örneğin girilen beş sayının ortalamasını alan bir kod yazalım:

#include
#include

int main()
{
    int sayac = 0;
    int toplam = 0;
    int puan = 0;

    do
    {
        printf("Puan girin : ");
        scanf("%d", &puan);

        toplam = toplam + puan;
        sayac++;

        }

        while(sayac < 5);

        printf("\n-------------------\n\nSinif ortalamasi : %.2f", float(toplam)/5.0);

        getch();
        return 0;
}

Kodu kısaca inceleyecek olursak, ilk önce değişkenlerimizi tanımladık. “sayac” değişkeni döngünün kaç kez döndüğünü kontrol ediyor. “toplam” değişkeni, girilen sayıların toplamını tutuyor. “puan” değişkeni ise girilen puanları “scanf” ile aldığımız değişken.

do’nun içini incelersek;
İlk önce kullanıcıdan puan girmesi isteniyor. Girilen puan “puan” isimli değişkene aktarılıyor. Ardından, “toplam” değişkenine girilen puan ekleniyor, tekrar “puan” değişkenine atanıyor. “sayac” değeri bir arttırılıyor. Daha sonra koşul kontrol ediliyor. “sayac” değeri 5’ten küçük olduğu sürece, yani “0,1,2,3,4” değerlerinde olmak üzere döngü beş kez dönüyor. Ardından “sayac” değeri 5 olduğunda 5<5 olmadığı için döngüden çıkılıyor.

Sıra geldi sonucu ekrana bastırmaya. “printf”i incelersek; ilk olarak “\n” ile bir satır aşağı indik. “————-” şeklinde girilen değerlerle sonucu ayırmak için bir çizgi çektik. “\n\n” ile iki satır daha aşağı indik. “%.2f” ile, bastırılacak değişkenin “float” tipinde olduğunu, ve “f”ten önce gelen “.2” ile de virgülden sonra iki basamak bastırmak istediğimizi belirttik.

Gelelim bastırılacak değişkenin hesaplanmasına: öncelikle elde etmek istediğimiz sonuç “float” tipinde olduğu için, bu tipi sadece float’u float’a bölerek elde ederiz. Bu nedenle “float(toplam)” ile int tipinde olan “toplam” değişkeni float’a dönüştürüldü. “5.0” yazmamızın nedeni de yine float olması. “5” yazsaydık bu integer olarak kabul edilecekti. Sonuç olarak float’a dönüştürdüğümüz “toplam” değişkenini yine float olan “5.0” a böldüğümüzde sonucumuzu elde ederiz, bunu da “%.2f” ile ekrana basarız.

Share

Döngüler – while

Döngüler C programlama dilinin vazgeçilmezlerinden biridir. If ile, bir koşul sağlandığında alttaki kodların çalışması sağlanıyordu. Döngülerde if’ten farklı olarak koşulu sürekli kontrol ederek koşul sağlandığı sürece alttaki kod çalışır. If’te ise bu bir kere olur. Koşul sağlanırsa kod çalışır, koşul tekrar kontrol edilmez. Döngülerde while, for ve do-while döngülerine göz atacağız. Bu yazıda while döngüsünden bahsedeceğim. While’ı, Türkçe’ye “-dığında”  şeklinde çevirebiliriz. Yazım şekli if’e benzer. while(koşul) şeklinde yazılır. If’te olduğu gibi altta çalışacak kod tek satırsa süslü parantez kullanmaya gerek yoktur. Ama birden fazla satır varsa parantezleri kullanmak zorundayız. Örnek olarak 1’den 10’a kadar olan sayıların karelerini yazdıran bir kod yazalım. Döngülerin kontrolü için genelde i, j, k gibi değişken isimleri kullanılır. Ben de öyle kullanacağım.


int i=1;

while(i <= 10)
{
printf("%d uzeri 2 = %d \n", i, i*i);
i++;
}

Gördüğünüz gibi i’yi 1 olarak tanımladım. Ardından koşul kontrol edildi, i <= 10 sağlandı. Altta 1 üzeri 2 = 1 yazdırıldı, i++ ile i 1 arttırıldı, koşul tekrar kontrol edildi. 2 <= 10 sağlandığı için alttaki kodlar tekrar çalıştı. Ta ki i = 11 olup koşul sağlanmayıncaya kadar sayıların kareleri ekrana bastırılır.

Share