1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

do/while Döngü yapısı

PDF Yazdır e-Posta

Written by Admin

Posted on 05 Eylül 2010

Son Güncelleme 05 Eylül 2010

do/while DÖNGÜ YAPISIdo/while döngü yapısı, while yapısına oldukça benzer. while yapısında döngü devam koşulu, döngünün gövdesinden önce test ediliyordu. do/while yapısında ise döngü devam koşulu, döngünün gövdesi çalıştırıldıktan sonra kontrol edilir. Bu sebepten, döngünün gövdesi en az bir kez çalıştırılır. do/while yapısı sonladığında program, while cümlesinden sonraki ifadeden devam eder. Eğer do/while yapısının gövdesi tek bir ifadeden oluşuyorsa, küme parantezlerini kullanmaya gerek yoktur. Buna rağmen, while yapısıyla do/while yapısının karışmasını önlemek için küme parantezleri kullanılır. Örneğin,

1
while( koşul )

normal olarak bir while yapısının başlığı olarak algılanır. Küme parantezleri kullanılmadan yazılacak bir do/while yapısı ise aşağıdaki biçimde görünür:

1
2
3
do
ifade
while( koşul ) ;

bu da bazen yanıltıcı olabilir. Son satır, okuyucu tarafından boş bir ifade içeren while yapısı gibi anlaşılabilir. Bu sebepten, tek ifadeye sahip do/while yapıları bu karışıklığı önlemek için

1
2
3
do{
ifade
}while(koşul);

biçiminde yazılır.

    İyi Programlama Alıştırmaları 4.17
    Bazı programcılar küme parantezine ihtiyaç duyulmasa bile do/while yapısında küme parantezlerini kullanırlar.Bu, tek ifade içeren do/while yapıları ile while yapılarının karıştırılmasını engeller.

    Genel Programlama Hataları 4.7
    while, for ya da do/while yapılarında döngü devam şartı asla yanlış hale gelmiyorsa, sonsuz döngüler oluşur. Bunu önlemek için, while ya da for yapılarının başlatıldığı kısmın sonuna noktalı virgül koymadığınıza emin olun. Sayıcı kontrollü döngülerde, kontrol değişkeninin döngü gövdesinde arttırılmasına ( ya da azaltılmasına ) dikkat edin. Nöbetçi kontrollü döngülerde nöbetçi değerin girildiğine emin olun

Şekil 4.9, do/while yapısıyla 1'den 10'a kadar olan sayıları yazdırmaktadır. Kontrol değişkeni olan sayici değişkeninin, döngü devam koşulu içinde ön arttırma ile arttırıldığına dikkat edin. Ayrıca do/while yapısının tek ifadeden oluşan gövdesinin, küme parantezleri içine alındığına da dikkat edin.
do/while yapısının akış grafiği Şekil 4.10'da gösterilmiştir. Bu akış grafiği, döngü devam koşulunun işlemler en az bir kez yapılmadan çalıştırılmadığını açıkça göstermektedir. Bu akış grafiğinde de (çember ve akış çizgileri dışında) yalnızca dikdörtgen ve elmas sembollerinin bulunduğuna dikkat ediniz. Bir kez daha, programcının algoritma oluşturmak için istediği kadar do/while yapısını diğer kontrol yapılarının üzerine dizebileceğini ya da içlerine yuvalayabileceğini hatırlayınız. Programcı, algoritmasını tamamlayabilmek için dikdörtgen ve elmas sembollerinin içlerini tamamlayacaktır.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Şekil 4.9: fig04_09.c
do/while döngü yapısını kullanma */
#include <stdio.h>
 
int main( )
{
int sayici = 1;
 
do {
printf( "%d ", sayici);
} while ( ++sayici <= 10 );
 
return 0;
}

 

1 2 3 4 5 6 7 8 9 10

Şekil 4.9 do/while yapısını kullanmak