C – Döngüler 2
Önceki yazımızda döngülerden if-else döngüsü ve while döngüsü ile ilgili programlar yapmıştık. Bu yazımızda ise while döngüsünün farklı bir türü olan do-while ve for döngüsü ile ilgili programlar yapacağım.Önceki döngüler konusu için buraya tıklayarak ulaşabilirsiniz.
İlk olarak do-while döngüsünü kullanacağım. Yapacağım programda kullanıcıdan bir sayı isteyeceğim, sayının 50 den küçük olması şartıyla (Bunu if-else kullanarak yapacağım) sonra kullanıcının girdiği sayıyı , sayı 50 den büyük oluncaya dek 5 arttıracağım.
#include<stdio.h> int main() { int sayi ; printf("Sayi giriniz (50 den kucuk olsun):"); scanf("%d",&sayi); if(sayi<50){ do { sayi = sayi + 5; printf("%d\n",sayi); } while(sayi<50); } else { printf("50 den buyuk sayi girdiniz. Yeniden baslatin."); } return 0; }
Do-while döngüsünün while döngüsünden farkı do-while döngüsünde ilk önce süslü parantez içerisindeki işlemleri gerçekleştiriyor daha sonra durumu kontrol ediyor.
Ekran çıktısı ;
Sayi giriniz (50 den kucuk olsun): 15 20 25 30 35 40 45 50
Şimdi ise for döngüsünü kullanarak program yapacağım. Bu program kullanıcıdan 2 sayı alacak. Bu sayılardan hangisi küçük ise onu büyük olana eşitleyince ye dek 1 attıracak.
#include<stdio.h> int main() { int sayi1,sayi2; printf("Ilk sayiyi giriniz:"); scanf("%d",&sayi1); printf("Ikinci sayiyi giriniz:"); scanf("%d",&sayi2); if(sayi1<sayi2) { for(sayi1 ; sayi1 <= sayi2 ; sayi1++) { printf("%d\n",sayi1); } } else { for(sayi2 ; sayi2 <= sayi1 ; sayi2++) { printf("%d\n",sayi2); } } return 0; }
For döngüsünde , for içerisindeki yazdıgımız koşullara bakılıyor mesela sayi=1 ; sayi <10 ; sayi++ bu demek oluyorki sayiyi 10 a kadar 1 arttır.
Ekran çıktısı;
Ilk sayiyi giriniz: 12 Ikinci sayiyi giriniz: 20 12 13 14 15 16 17 18 19 20
For ile fibonacci döngüsünüde yapacağım . Fibonacci döngüsü kendisinden bir önce gelen sayıyla toplamak ile oluşuyor. Bunun için yazmamız gereken kod dizimi;
#include<stdio.h> int main() { int sayi1 = 1, sayi2 = 1 , x; int gecici; printf("%d\n%d\n",sayi1,sayi2); // x i burada degişken olarak atadım degeri yok amacı sadece döngüyü devam ettirmesi for(x=0 ;x < 10 ; x++) { gecici = sayi2; sayi2 += sayi1; sayi1 = gecici; printf("%d\n",sayi2); } return 0; }
Ekran Çıktısı ;
1 1 2 3 5 8 13 21 34 55 89 144