C'de Döngüler: For, While, Do While döngü ifadeleri [Örnekler]
C'de Döngü Nedir?
C'de Döngü İfadeleri belirtilen koşul yanlış olana kadar ifade dizisini birçok kez yürütün. C dilindeki bir döngü, döngü gövdesi ve kontrol ifadesi olmak üzere iki bölümden oluşur. Kontrol ifadesi, döngünün gövdesini, belirtilen koşul yanlış olana kadar çalıştırılacak şekilde yönlendiren bazı koşulların birleşimidir. C döngüsünün amacı aynı kodu birkaç kez tekrarlamaktır.
C'de Döngü Türleri
Bir programdaki kontrol ifadesinin konumuna bağlı olarak, C'deki döngü ifadesi iki türe ayrılır:
1. Giriş kontrollü döngü
2. Kontrollü döngüden çıkın
Bir de C'de giriş kontrol döngüsü, Bir döngünün gövdesini çalıştırmadan önce bir koşul kontrol edilir. Ön kontrol döngüsü olarak da adlandırılır.
Bir de kontrollü döngüden çıkış, bir döngünün gövdesi yürütüldükten sonra bir koşul kontrol edilir. Aynı zamanda kontrol sonrası döngü olarak da adlandırılır.
Kontrol koşulları iyi tanımlanmalı ve belirtilmeli, aksi takdirde döngü sonsuz sayıda yürütülür. Yürütmeyi durdurmayan ve ifadeleri sayısız kez işleyen döngüye döngü denir sonsuz döngü. Sonsuz döngüye aynı zamanda “Sonsuz döngü.” Sonsuz döngünün bazı özellikleri şunlardır:
1. Herhangi bir sonlandırma koşulu belirtilmemiştir.
2. Belirtilen koşullar asla karşılanmaz.
Belirtilen koşul, döngü gövdesinin yürütülüp yürütülmeyeceğini belirler.
'C' programlama dili bize üç tür döngü yapısı sağlar:
1. While döngüsü
2. Do-while döngüsü
3. for döngüsü
Hayır. | Döngü tipi | Açıklama |
---|---|---|
1. | Döngü sırasında | While döngüsünde, döngünün gövdesi işlenmeden önce bir koşul değerlendirilir. Bir koşul doğruysa ancak o zaman döngünün gövdesi yürütülür. |
2. | Do-While Döngüsü | Bir do…while döngüsünde koşul her zaman döngünün gövdesinden sonra yürütülür. Aynı zamanda çıkış kontrollü döngü olarak da adlandırılır. |
3. | Döngü için | For döngüsünde, başlangıç değeri yalnızca bir kez gerçekleştirilir, ardından koşul her yinelemeden sonra sayacı test eder ve sabit bir değerle karşılaştırır ve false döndürüldüğünde for döngüsü durdurulur. |
Döngü C'de iken
While döngüsü en basit döngü yapısıdır. C programlama dilinde while döngüsünün söz dizimi şu şekildedir:
C'de While Döngüsünün Sözdizimi
while (condition) { statements; }
Giriş kontrollü bir döngüdür. While döngüsünde, döngünün gövdesi işlenmeden önce bir koşul değerlendirilir. Bir koşul doğruysa ancak o zaman döngünün gövdesi yürütülür. Döngünün gövdesi çalıştırıldıktan sonra kontrol tekrar başa döner ve koşulun doğru olup olmadığı kontrol edilir, koşul yanlış olana kadar aynı işlem yürütülür. Koşul yanlış olduğunda kontrol döngüden çıkar.
Döngüden çıktıktan sonra kontrol, döngünün hemen ardından gelen ifadelere gider. Bir döngünün gövdesi birden fazla ifadeyi içerebilir. Yalnızca bir ifade içeriyorsa süslü parantezlerin kullanılması zorunlu değildir. Gövdede tek bir ifade olsa bile küme parantezlerini kullanmak iyi bir uygulamadır.
While döngüsünde, eğer koşul doğru değilse, döngünün gövdesi bir kez bile çalıştırılmayacaktır. Birazdan göreceğimiz do while döngüsünde ise durum farklıdır.
Aşağıdaki program, C programlama örneğinde while döngüsünü göstermektedir:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable while(num<=10) //while loop with condition { printf("%d\n",num); num++; //incrementing operation } return 0; }
Çıktı:
1 2 3 4 5 6 7 8 9 10
Yukarıdaki program while döngüsünün kullanımını göstermektedir. Yukarıdaki programda while döngüsünü kullanarak 1'den 10'a kadar sayı dizisini yazdırdık.
- Num adında bir değişkeni 1 değeriyle başlattık. 1'den 10'a kadar yazdırma yapacağız, dolayısıyla değişken 1 değeriyle başlatılıyor. 0'dan yazdırmak istiyorsanız, başlatma sırasında 0 değerini atayın.
- Bir while döngüsünde, bir koşul (num<=10) sağladık, bu, num değeri 10 olana kadar döngünün gövdeyi çalıştıracağı anlamına gelir. Bundan sonra döngü sonlandırılacak ve kontrol, döngünün dışına çıkacaktır.
- Bir döngünün gövdesinde, sayımızı yazdırmak için bir yazdırma fonksiyonumuz ve bir döngünün yürütülmesi başına değeri artırmak için bir artırma işlemimiz vardır. Num'un başlangıç değeri 1'dir, çalıştırıldıktan sonra 2 olacak, bir sonraki çalıştırmada 3 olacaktır. Bu işlem değer 10 olana kadar devam edecek ve daha sonra seriyi konsola yazdıracak ve döngüyü sonlandıracaktır. .
\n biçimlendirme amacıyla kullanılır; bu, değerin yeni bir satıra yazdırılacağı anlamına gelir.
C'de Do-While döngüsü
C'deki do…while döngüsü while döngüsüne benzer, tek fark koşulun her zaman döngünün gövdesinden sonra yürütülmesidir. Aynı zamanda çıkış kontrollü döngü olarak da adlandırılır.
C programlama dilinde do while döngüsünün sözdizimi aşağıdaki gibidir:
C'de Do-While Döngüsünün Sözdizimi
do { statements } while (expression);
While döngüsünde gördüğümüz gibi, gövde ancak ve ancak koşulun doğru olması durumunda çalıştırılır. Bazı durumlarda, koşul yanlış olsa bile döngünün gövdesini en az bir kez çalıştırmamız gerekir. Bu tür işlemler do-while döngüsü kullanılarak gerçekleştirilebilir.
Do-while döngüsünde, bir döngünün gövdesi her zaman en az bir kez yürütülür. Gövde yürütüldükten sonra, koşulu kontrol eder. Koşul doğruysa, döngünün gövdesini tekrar yürütür, aksi takdirde kontrol döngüden dışarı aktarılır.
While döngüsüne benzer şekilde, kontrol döngüden çıktığında döngünün hemen ardından gelen ifadeler çalıştırılır.
While döngüsü ile do-while döngüsü arasındaki en önemli fark, while döngüsünün başında while ifadesinin yazılmasıdır. Do-while döngüsünde while koşulu en sona yazılır ve noktalı virgül (;) ile sonlandırılır.
Aşağıdaki C döngü programı, do-while döngüsünün çalışma şeklini göstermektedir:
Aşağıda C örneğinde 2 numaralı tabloyu yazdırmak için kullanılan bir do-while döngüsü verilmiştir:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable do //do-while loop { printf("%d\n",2*num); num++; //incrementing operation }while(num<=10); return 0; }
Çıktı:
2 4 6 8 10 12 14 16 18 20
Yukarıdaki örnekte do-while döngüsünü kullanarak 2'nin çarpım tablosunu yazdırdık. Programın seriyi nasıl yazdırabildiğini görelim.
- Öncelikle 'num' değişkenini 1 değeriyle başlattık. Daha sonra do-while döngüsü yazdık.
- Bir döngüde num değerini 2 ile çarparak seriyi yazdıracak bir yazdırma fonksiyonumuz var.
- Her artıştan sonra num değeri 1 artacak ve ekrana yazdırılacaktır.
- Başlangıçta num'un değeri 1'dir. Bir döngünün gövdesinde, yazdırma işlevi şu şekilde yürütülecektir: 2*num, burada num=1, ardından 2*1=2, dolayısıyla iki değeri yazdırılacaktır. Bu durum num değeri 10 olana kadar devam edecek. Bundan sonra döngü sonlandırılacak ve döngünün hemen ardından gelen deyim çalıştırılacaktır. Bu durumda 0 değerini döndürün.
C'deki for döngüsü
For döngüsü 'C' programlamasında daha verimli bir döngü yapısıdır. C dilinde for döngüsü sözdiziminin genel yapısı aşağıdaki gibidir:
C'de For Döngüsünün Sözdizimi
for (initial value; condition; incrementation or decrementation ) { statements; }
- For döngüsünün başlangıç değeri yalnızca bir kez gerçekleştirilir.
- Koşul, her yinelemeden sonra sayacı sabit bir değerle test eden ve karşılaştıran, false döndürüldüğünde for döngüsünü durduran bir Boole ifadesidir.
- Arttırma/azaltma, sayacı ayarlanan değer kadar artırır (veya azaltır).
Aşağıdaki program C programlama örneğinde for döngüsünü göstermektedir:
#include<stdio.h> int main() { int number; for(number=1;number<=10;number++) //for loop to print 1-10 numbers { printf("%d\n",number); //to print the number } return 0; }
Çıktı:
1 2 3 4 5 6 7 8 9 10
Yukarıdaki program for döngüsünü kullanarak 1'den 10'a kadar olan sayı serilerini yazdırmaktadır.
- Bir ilan verdik değişken Değerleri saklamak için int veri tipi.
- For döngüsünde başlatma kısmında değişken numarasına 1 değerini atadık. Koşul kısmında koşulumuzu ve ardından arttırma kısmını belirttik.
- Bir döngünün gövdesinde, sayıları konsolda yeni bir satıra yazdırmak için bir yazdırma işlevimiz vardır. Sayıda saklanan bir değerimiz var, ilk yinelemeden sonra değer artırılacak ve 2 olacak. Artık sayı değişkeni 2 değerine sahip. Koşul yeniden kontrol edilecek ve koşul doğru olduğundan döngü yürütülecek, ve ekrana iki tane yazdıracak. Değişkenin değeri 10 olana kadar bu döngü işlemeye devam edecektir. Daha sonra döngü sonlandırılacak ve ekrana 1-10 arası bir seri yazdırılacaktır.
C'de for döngüsü, her bölümde virgülle ayrılmış birden fazla ifadeye sahip olabilir.
Örneğin:
for (x = 0, y = num; x < y; i++, y--) { statements; }
Ayrıca noktalı virgül ekleyerek başlangıç değer ifadesini, koşulunu ve/veya artışını atlayabiliriz.
Örneğin:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
Döngülerin, bir dış döngü ve bir iç döngünün olduğu yerde de iç içe olabileceğine dikkat edin. Dış döngünün her yinelemesinde iç döngü tüm döngüsünü tekrarlar.
C programlamada, iç içe for döngüsünü kullanarak çarpım tablosunu çıktı olarak veren, birden fazla koşullu for döngüsü örneğini ele alalım:
#include <stdio.h> int main() { int i, j; int table = 2; int max = 5; for (i = 1; i <= table; i++) { // outer loop for (j = 0; j <= max; j++) { // inner loop printf("%d x %d = %d\n", i, j, i*j); } printf("\n"); /* blank line between tables */ }}
Çıktı:
1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
For döngülerinin iç içe yerleştirilmesi herhangi bir seviyeye kadar yapılabilir. Kodun okunabilir olması için iç içe geçmiş döngüler yeterince girintili olmalıdır. 'C'nin bazı sürümlerinde yuvalama 15 döngüyle sınırlıdır, ancak bazıları daha fazlasını sağlar.
İç içe döngüler daha sonraki derslerde göreceğimiz dizi uygulamalarında çoğunlukla kullanılır.
C'de Break İfadesi
Break ifadesi esas olarak aşağıdaki durumlarda kullanılır: anahtar bildirimi. Ayrıca bir döngüyü hemen durdurmak için de kullanışlıdır.
Bir while döngüsünden çıkmak için break komutunu kullanan aşağıdaki programı ele alalım:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
Çıktı:
5 4
C'de İfadeye Devam Et
Bir sonraki yinelemeye atlamak ancak döngüde kalmak istediğinizde devam ifadesini kullanmalısınız.
Örneğin:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
Çıktı:
6 4 3 2 1
Yani 5 değeri atlanıyor.
Hangi Döngü Seçilecek?
Bir döngünün seçimi bir programcı için her zaman zor bir iştir, bir döngü seçmek için aşağıdaki adımları izleyin:
- Sorunu analiz edin ve ön test veya son test döngüsü gerektirip gerektirmediğini kontrol edin.
- Ön test gerekiyorsa while veya for döngüsü kullanın.
- Son test gerekiyorsa do-while döngüsü kullanın.
ÖZET
- C'de döngünün tanımlanması: Döngü, herhangi bir alandaki temel kavramlardan biridir. Programlama dili. C dilinde döngüler koşullu ifadeler kullanılarak uygulanır.
- C'deki döngü kontrol ifadeleri bloğu, koşul yanlış olana kadar birçok kez yürütülür.
- C programlamadaki döngüler 2 tiptir: giriş kontrollü ve çıkış kontrollü.
- C'deki çeşitli döngü kontrol talimatlarını listeleyin: C programlama bize 1) while 2) do-while ve 3) for döngü kontrol talimatlarını sağlar.
- For ve while döngüsü C programlaması, C dilinde giriş kontrollü döngülerdir.
- Do-while, C'deki bir çıkış kontrol döngüsüdür.