-
Sadrazamv4
ig:sadrazam_v4 tg: Sadrazam.spy
🚀 BAŞTAN SONA C DİLİ BÖLÜM-4: Döngüler (`for`, `while`, `do-while`) ve Akış Kontrolü 🌀
Selamlar! Serimizin 4. bölümüne hoş geldiniz.
Önceki bölümde Aritmetik/Mantıksal operatörleri, `if/else` karar bloklarını ve `switch-case` yapılarını incelemiştik. Bu bölümde ise tekrarlayan işlemleri otomatikleştiren **Döngüleri (Loops)**, **`break` / `continue` ifadelerini** ve **İç İçe Döngüleri (Nested Loops)** öğreneceğiz.
C dilinde 3 temel döngü yapısı bulunur:
1. **`for` Döngüsü:** Adım sayısı veya döngünün kaç kez döneceği önceden belli olduğunda tercih edilir.
2. **`while` Döngüsü:** Belirtilen koşul `1` (True) olduğu sürece çalışır.
3. **`do-while` Döngüsü:** Koşul ne olursa olsun kodu **en az bir kez** çalıştırır, ardından kontrol yapar.
---
📌 1. `for` Döngüsü 🔄
`for` döngüsü; başlangıç değeri, çalışma koşulu ve artış/azalış miktarını tek satırda tanımlamamıza olanak tanır.
Sözdizimi:
`for (başlangıç; koşul; artış) { // Çalışacak Kodlar }`
#include <stdio.h>
int main() {
// 1'den 5'e kadar sayıları yazdıralım
int i;
for (i = 1; i <= 5; i++) {
printf("Sayi: %d\n", i);
}
// 10'dan 0'a 2'ser 2'ser geriye sayma
printf("\nGeri Sayim:\n");
for (int j = 10; j >= 0; j -= 2) {
printf("%d ", j);
}
printf("\n");
return 0;
}
---
⏳ 2. `while` Döngüsü 🔄
`while` döngüsü, parantez içindeki koşul `0` olmadığı (doğru olduğu) sürece dönmeye devam eder. Koşul en başta yanlışsa döngü gövdesi hiç çalışmaz.
#include <stdio.h>
int main() {
int sayi = 1;
int toplam = 0;
// Kullanıcı 0 girene kadar sayıları toplayan program
while (sayi != 0) {
printf("Bir sayi giriniz (Cikis icin 0): ");
scanf("%d", &sayi);
toplam += sayi;
}
printf("Girilen Sayilarin Toplami: %d\n", toplam);
return 0;
}
---
🔁 3. `do-while` Döngüsü 🎯
`do-while` döngüsünün `while` döngüsünden tek ve en kritik farkı: **Koşul kontrolünün döngünün sonunda yapılmasıdır.** Bu sayede koşul yanlış olsa dahi kod bloğu **en az bir kez** yürütülür.
#include <stdio.h>
int main() {
int sifre;
do {
printf("4 haneli sifrenizi giriniz: ");
scanf("%d", &sifre);
} while (sifre != 1234); // Sifre 1234 olmadıgı surece sormaya devam et
printf("Giris Basarili! Hos geldiniz. 🚀\n");
return 0;
}
---
⚡ 4. Akış Kontrolü: `break` ve `continue` 🎛️
• **`break`:** İçinde bulunduğu döngüyü anında sonlandırır ve döngü dışına atlar.
• **`continue`:** Döngünün o anki adımını atlar, doğrudan bir sonraki adıma/güncellemeye geçer.
#include <stdio.h>
int main() {
printf("--- 1 ile 10 Arasindaki Sayilar (5 Atlanacak, 8'de Duracak) ---\n");
for (int i = 1; i <= 10; i++) {
if (i == 5) {
printf("Sayı 5 atlandi! (continue)\n");
continue; // 5'i basmadan sonraki adıma geç
}
if (i == 8) {
printf("Sayı 8 oldu, dongu kırılıyor! (break)\n");
break; // Döngüyü tamamen bitir
}
printf("Indeks: %d\n", i);
}
return 0;
}
---
🧱 5. İç İçe Döngüler (Nested Loops) ve Yıldız Deseni 🌟
Matris işlemleri veya desen çizimlerinde iç içe döngüler sıklıkla kullanılır.
#include <stdio.h>
int main() {
int satir = 5;
// Dik üçgen şeklinde yıldız deseni çizimi
for (int i = 1; i <= satir; i++) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n"); // Satır bitince alt satıra geç
}
return 0;
}
/*
Çıktı:
*
* *
* * *
* * * *
* * * * *
*/
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde `for`, `while` ve `do-while` döngülerini, `break`/`continue` akış kontrol komutlarını ve iç içe döngü yapılarını öğrendik.
👉 **Bölüm 5'te Bizi Ne Bekliyor?**
• Fonksiyonlar (Functions) ve Kod Modülerliği
• Fonksiyon Tanımlama, Deklarasyon (Prototype) ve Çağırma
• Parametre Geçirme: **Call by Value** vs **Call b
y Reference (Pointer Giriş!)**
• Rekürsif (Öz Yinemeli) Fonksiyonlar
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 💻✨
Selamlar! Serimizin 4. bölümüne hoş geldiniz.
Önceki bölümde Aritmetik/Mantıksal operatörleri, `if/else` karar bloklarını ve `switch-case` yapılarını incelemiştik. Bu bölümde ise tekrarlayan işlemleri otomatikleştiren **Döngüleri (Loops)**, **`break` / `continue` ifadelerini** ve **İç İçe Döngüleri (Nested Loops)** öğreneceğiz.
C dilinde 3 temel döngü yapısı bulunur:
1. **`for` Döngüsü:** Adım sayısı veya döngünün kaç kez döneceği önceden belli olduğunda tercih edilir.
2. **`while` Döngüsü:** Belirtilen koşul `1` (True) olduğu sürece çalışır.
3. **`do-while` Döngüsü:** Koşul ne olursa olsun kodu **en az bir kez** çalıştırır, ardından kontrol yapar.
---
📌 1. `for` Döngüsü 🔄
`for` döngüsü; başlangıç değeri, çalışma koşulu ve artış/azalış miktarını tek satırda tanımlamamıza olanak tanır.
Sözdizimi:
`for (başlangıç; koşul; artış) { // Çalışacak Kodlar }`
#include <stdio.h>
int main() {
// 1'den 5'e kadar sayıları yazdıralım
int i;
for (i = 1; i <= 5; i++) {
printf("Sayi: %d\n", i);
}
// 10'dan 0'a 2'ser 2'ser geriye sayma
printf("\nGeri Sayim:\n");
for (int j = 10; j >= 0; j -= 2) {
printf("%d ", j);
}
printf("\n");
return 0;
}
---
⏳ 2. `while` Döngüsü 🔄
`while` döngüsü, parantez içindeki koşul `0` olmadığı (doğru olduğu) sürece dönmeye devam eder. Koşul en başta yanlışsa döngü gövdesi hiç çalışmaz.
#include <stdio.h>
int main() {
int sayi = 1;
int toplam = 0;
// Kullanıcı 0 girene kadar sayıları toplayan program
while (sayi != 0) {
printf("Bir sayi giriniz (Cikis icin 0): ");
scanf("%d", &sayi);
toplam += sayi;
}
printf("Girilen Sayilarin Toplami: %d\n", toplam);
return 0;
}
---
🔁 3. `do-while` Döngüsü 🎯
`do-while` döngüsünün `while` döngüsünden tek ve en kritik farkı: **Koşul kontrolünün döngünün sonunda yapılmasıdır.** Bu sayede koşul yanlış olsa dahi kod bloğu **en az bir kez** yürütülür.
#include <stdio.h>
int main() {
int sifre;
do {
printf("4 haneli sifrenizi giriniz: ");
scanf("%d", &sifre);
} while (sifre != 1234); // Sifre 1234 olmadıgı surece sormaya devam et
printf("Giris Basarili! Hos geldiniz. 🚀\n");
return 0;
}
---
⚡ 4. Akış Kontrolü: `break` ve `continue` 🎛️
• **`break`:** İçinde bulunduğu döngüyü anında sonlandırır ve döngü dışına atlar.
• **`continue`:** Döngünün o anki adımını atlar, doğrudan bir sonraki adıma/güncellemeye geçer.
#include <stdio.h>
int main() {
printf("--- 1 ile 10 Arasindaki Sayilar (5 Atlanacak, 8'de Duracak) ---\n");
for (int i = 1; i <= 10; i++) {
if (i == 5) {
printf("Sayı 5 atlandi! (continue)\n");
continue; // 5'i basmadan sonraki adıma geç
}
if (i == 8) {
printf("Sayı 8 oldu, dongu kırılıyor! (break)\n");
break; // Döngüyü tamamen bitir
}
printf("Indeks: %d\n", i);
}
return 0;
}
---
🧱 5. İç İçe Döngüler (Nested Loops) ve Yıldız Deseni 🌟
Matris işlemleri veya desen çizimlerinde iç içe döngüler sıklıkla kullanılır.
#include <stdio.h>
int main() {
int satir = 5;
// Dik üçgen şeklinde yıldız deseni çizimi
for (int i = 1; i <= satir; i++) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n"); // Satır bitince alt satıra geç
}
return 0;
}
/*
Çıktı:
*
* *
* * *
* * * *
* * * * *
*/
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde `for`, `while` ve `do-while` döngülerini, `break`/`continue` akış kontrol komutlarını ve iç içe döngü yapılarını öğrendik.
👉 **Bölüm 5'te Bizi Ne Bekliyor?**
• Fonksiyonlar (Functions) ve Kod Modülerliği
• Fonksiyon Tanımlama, Deklarasyon (Prototype) ve Çağırma
• Parametre Geçirme: **Call by Value** vs **Call b
y Reference (Pointer Giriş!)**
• Rekürsif (Öz Yinemeli) Fonksiyonlar
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 💻✨
🔒 Bu içeriği görmek için giriş yapın