Sayfalar

Menü

5 Mayıs 2020 Salı

C programlama while ve do while döngüsü

while ve do while Döngüleri
While anahtar sözcüğünü izleyen parantez içerisindeki ifadeye kontrol ifadesi (control
statement) denir. while parantezini izleyen ilk deyime döngü gövdesi denir. Döngü gövdesi
basit bir deyim olabileceği gibi, bloklanmış birden fazla deyimden de (bileşik deyim) oluşabilir.
while deyiminin icrası şu şekilde olur: Kontrol ifadesinin sayısal değeri hesaplanır. Kontrol
ifadesinin sayısal değeri 0 dışı bir değerse, mantıksal olarak doğru kabul edilir ve döngü
gövdesindeki deyim ya da deyimler çalıştırılır. Kontrol ifadesinin sayısal değeri 0 ise mantıksal
olarak yanlış kabul edilir programın akışı döngünün dışındaki ilk deyimle devam eder. Yani
while döngüsü, kontrol ifadesinin sayısal değeri 0 dışı bir değer olduğu sürece, döngü
gövdesini oluşturan deyim(ler)in icrası ile devam eder.
Bu durumda while döngüsü aşağıdaki gibi de oluşturulabilir :
while (ifade) {
ifade1;
ifade2;
ifade3;
......
}

Bu durumda kontrol ifadesinin sayısal değeri 0 dışı bir değer olduğu (doğru) sürece blok
parantezleri arasında kalan tüm deyimler icra edilecektir. Örnek:
#include <stdio.h>
int main()
{
int i = 0;
while (i < 10) {
printf ("%d\n", i)
++i;
}
return 0;
}

Başka bir örnek:

#include <stdio.h>
#include <ctype.h>
int main()
{
char ch;
while (ch = getch(), toupper(ch) != 'Q')
putchar(ch);
return 0;
}
Başka bir örnek daha:

int main()
{
char ch;
while (ch = getch(), isupper (ch))
putchar(ch);
return 0;
}
while parantezinin içindeki ifade yani koşul ifadesi, ifade tanımına uygun herhangi bir ifade
olabilir.
while (1) {
....
}
Yukarıdaki while deyiminde kontrol ifadesi olarak bir sabit olan 1 sayısı kullanılmıştır. 1 değeri
0 dışı bir değer olduğundan ve kontrol ifadesi bir değişkene bağlı olarak değişemeyeceğinden,
böyle bir döngüden çıkmak mümkün olmayacaktır. Bu tür döngülere sonsuz döngüler (infinite
loops) denir. Sonsuz döngüler bir yanlışlık sonucu oluşturulabildiği gibi, bilinçli olarak da
oluşturulabilir. Sonsuz döngülerden bazı yöntemlerle çıkılabilir.

break Anahtar Sözcüğü
break anahtar sözcüğü ile bir döngü sonlandırılabilir. Kullanımı
break;
şeklindedir. Programın akışı break anahtar sözcüğünü gördüğünde, döngü kırılarak döngünün
akışı döngü gövdesi dışındaki ilk deyim ile devam eder. Yani koşulsuz olarak döngüden çıkılır.
int main (void)
{
char ch;
while (1) {
ch = getch();
if (ch == 'q')
break;
putchar(ch);
}
printf("döngüden çıkıldı!..\n");
return 0;
}






İçiçe Döngüler
Bir döngünün gövdesini başka bir kontrol deyimi oluşturabilir. Döngü gövdesini oluşturan
kontrol deyimi bir if deyimi olabileceği gibi başka bir döngü deyimi de olabilir. (while, do
while, for deyimleri)
int main()
{
int i = 0;
int k = 0;
while (i < 10) {
while (k < 10) {
printf("%d %d", i, k);
++k;
}
}
++i;
return 0;
}
İçiçe döngülerde içerideki döngüde break deyimi kullanıldığında yalnızca içerideki döngüden
çıkılır, her iki döngüden birden çıkmak için goto deyimi kullanılmalıdır.

Kontrolün Sonda Yapıldığı while Döngüleri
Genel biçim;
1. do
ifade 1;
while (ifade 2);
2. do {
ifade 1;
ifade 2;
} while (ifade);


do while döngüsünde kontrol ifadesi sondadır. while parantezinden sonra sonlandırıcı ";"
bulunmalıdır. Yani buradakı sonlandırıcı yanlışlık sonucu koyulmamıştır, deyime ilişkin
sentaksın bir parçasıdır. Döngü gövdesindeki deyim(ler) en az bir kere icra edilecektir. Örnek :
int main()
{
int i = 0;
do {
++i;
printf("%d\n", i);
} while (i < 10);
return 0;
}
Başka bir örnek:
int main()
{
char ch;
do {
printf ("(e)vet / (h)ayıt?\n");
ch = getch();
} while (ch != 'e' && ch != 'h');
printf("ok...\n");
return 0;
}

1'den 100'e kadar sayıları her satırda beş tane olacak biçimde ekrana yazan bir C programının
yazılması:
#include <stdio.h>
int main()
{
int i = 0;
do {
printf("%d ", ++i);
if (i % 5 == 0)
printf("\n");
} while (i < 100);
return 0;
}




Hiç yorum yok:

Yorum Gönder

Her yorum bilgidir. Araştırmaya devam...