Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?
#include<stdio.h> int main() { int i, k; for (i = 1, k = 1; k; printf("%d%d", i, k)) k = i++ <= 3; return 0; }
Yanıt:
Sorunun yanıtına geçmeden önce for döngüsünün nasıl çalıştığına bakmak lazım. İlk olarak aşağıdaki resim for döngüsünün akış diyagramını incelemek gerekir.
Sorunun yanıtına geçmeden önce for döngüsünün nasıl çalıştığına bakmak lazım. İlk olarak aşağıdaki resim for döngüsünün akış diyagramını incelemek gerekir.
Yukarıdaki bilgiler ile adım adım aşağıdaki kodu koşalım ve her bir adımda çıktıları yazalım. i++ dikkat etmeyi unutmayalım. Çünkü bu satırda i değeri değişmezken i++ etkisi ile i nin kullanıldığı bir sonraki işlemde i değeri bir artmış olacak.
i=1: → k = 1 → printf çıktısı: 21 (i++ etkisi ile i=2 olarak işlendi)
i=2: → k = 1 → printf çıktısı: 31 (i++ etkisi ile i=3 olarak işlendi)
i=3: → k = 1 → printf çıktısı: 41 (i++ etkisi ile i=4 olarak işlendi)
i=4: → k = 0;→ printf çıktısı: 50 (i++ etkisi ile i=5 olarak işlendi)
k=0 olduğu için döngü akışı biter. Sonuç olarak çıktı 21314150 olur.
   for (i = 1, k = 1; k; printf("%d%d", i, k))
k = i++ <= 3;
k = i++ <= 3;
i=1: → k = 1 → printf çıktısı: 21 (i++ etkisi ile i=2 olarak işlendi)
i=2: → k = 1 → printf çıktısı: 31 (i++ etkisi ile i=3 olarak işlendi)
i=3: → k = 1 → printf çıktısı: 41 (i++ etkisi ile i=4 olarak işlendi)
i=4: → k = 0;→ printf çıktısı: 50 (i++ etkisi ile i=5 olarak işlendi)
k=0 olduğu için döngü akışı biter. Sonuç olarak çıktı 21314150 olur.
 
Hiç yorum yok:
Yorum Gönder
Son Ütücü