230 likes | 346 Vues
Bölüm 5. Döngü Komutları. while Komutu. Diğer Operatörler Bileşik Komut for Komutu. do--while Komutu İçiçe Döngüler. break ve continue Komutları. while Komutu Döngü komutları komutların bir çok kez yeniden yürülmesini sağlayan, programlamada kullandığımız önemli yapılardan biridir.
E N D
Bölüm5 DöngüKomutları whileKomutu DiğerOperatörler BileşikKomut forKomutu do--whileKomutu İçiçeDöngüler breakvecontinueKomutları
whileKomutu Döngükomutlarıkomutlarınbirçokkezyenidenyürülmesini sağlayan,programlamadakullandığımızönemliyapılardanbiridir. Cdilindebizebuözelliğisağlayankomutlar while for do-while komutlarıdır. 2
whileKomutu while(koşul_ifadesi) komut; whiledöngüsünde komut’unyürütümü koşulifadesidoğru olduğusürecedevam eder. 3
whileKomutu Örnek: printf(“Birpozitifsayigiriniz:”); scanf(“%d”,&n); while(n<0) scanf(“%d”,&n); printf(“Ensonndegeri:%d”,n); 4
whileKomutu whileKomutununAşamaları →Đlkdeğeratamaaşaması →Kontrolaşaması →Güncellemeaşaması sayac=1; while(sayac<=10) { printf(“%3d”,sayac); sayac=sayac+1; } 5
whileKomutu Örnek: Pozitifsayılarıngirildiğivegirilenbupozitifsayılarınenbüyüğünün bulunduğuprogramıyazınız.Programdasayıgirmeişleminegatifbirsayı girilinceyekadardevametmelidir. –#include<stdio.h> –intmain(void) –{ intsayi,max=0; /*Enbuyuksayininsifiroldugunukabuledelim.*/ printf("Sayigiriniz:"); scanf("%d",&sayi); – – – – – – 6
whileKomutu while(sayi>0) { /*Egergirilensayimaxdabulunanbuyuksayidandaha buyukseyenigirilensayimaxdegiskenineatanir*/ if(sayi>max) max=sayi; printf("Sayigiriniz:"); scanf("%d",&sayi); } printf("Enbuyukpozitifsayi:%d",max); return(0); } 7
DiğerOperatörler BileşikAtamaOperatörü değişken=değişkenoperatörifade; değişkenoperatör=ifade; 8
DiğerOperatörler ArtırmaveAzaltmaOperatörleri(++--) sayac=sayac+1; sayac++;(son-ek) ++sayac;(ön-ek) 9
forKomutu for(ilk_değer_atama_komutu; kontrol_ifadesi; güncelleme_komutu) döngü_komutları; 10
forKomutu for(ilk_değer_atama_komutu; kontrol_ifadesi; güncelleme_komutu) döngü_komutları; 11
forKomutu whiledöngüsü sayac=1; while(sayac<=10) { printf(“%3d”,sayac); sayac++; } Eşdeğerfordöngüsü for(sayac=1;sayac<=10;sayac++) printf(“%3d”,sayac); 12
forKomutu Örnek: Pozitifbirnsayısınıvebunsayısıkadardatamsayıyıgirdiolarakalan programıyazınız.Ayrıca,buprogramdagirilmişolanntanetamsayının kaçınınnegatif,pozitifvesıfırolduğunuhesaplayıpekrandagösteriniz. #include<stdio.h> intmain(void) {intpos=0,neg=0,sifir=0,n,sayi,i; printf("Kactanesayigireceksiniz:"); scanf("%d",&n); /*Donguicindentanesayiningirilmesiveislenmesi*/ for(i=1;i<=n;i=i+1) { printf("%d.sayi:",i); scanf("%d",&sayi); 13
forKomutu /*Girilensayininpozitif,negatifveyasifirolup olmadigininbelirlenmesi*/ if(sayi>0) pos++; elseif(sayi<0) neg++; elsesifir++; } /*Sonuclaringosterilmesi*/ printf("\n%dadetpozitifsayi.\n",pos); printf("%dadetnegatifsayi.\n",neg); printf("%dadetsifirsayisi.\n",sifir); return(0); } 14
forKomutu forKomutununFarklıKullanımları for(i=0,j=0;i<=4&&j>-8;i++,j--) printf(“%3d%3d\n”,i,j); toplam=0; toplam=0; i=1; for(;i<=10;i++) toplam+=i; i=1; for(;i<=10;) {toplam+=i; i++; 15
dowhileKomutu do komut; while(koşul_ifadesi); 16
dowhileKomutu whileveforkomutlarındakoşulifadesi,döngününbaşında kontroledilirken,do-whilekomutundakontrolişlemi döngününsonundayapılır. 17
dowhileKomutu Örnek: Aşağıdakiseçeneklerigörüntüleyecekveseçenekleregöreaşağıdatanımlanan seçeneğinalanınıbulacakbirCprogramıyazınız. 1.Kare 2.Daire 3.Bitti Seceneginizibelirtiniz(1,2,3): #include<stdio.h> #definePI3.141592654 intmain(void) { intcevap; doublea,r,alan; do {/*Menunungoruntulenmesi*/ printf("\n1.Kare"); printf("\n2.Daire"); printf("\n3.Bitir"); printf("\n\nSeceneginizibelirtiniz:"); scanf("%d",&cevap); 18
dowhileKomutu switch(cevap) { case1:/*Kareninalanininhesaplanmasi*/ printf("\nKareninkenaruzunlugunugiriniz: "); scanf("%lf",&a); alan=a*a; printf("Kareninalani:%.2f\n",alan); break; case2:/*Daireninalanininhesaplanmasi*/ printf("\nDaireninyaricapuzunlugunugiriniz: "); scanf("%lf",&r); alan=PI*r*r; printf("Daireninalani:%.2f\n",alan); } } while(cevap!=3); return(0); } 19
İçiçeDöngüler Örnek: Birbaşkaörnekolarakaşağıdakiçıktıyıverenprogramparçasınıiçiçedöngüler kullanarakyazalım. 1 21 321 4321 54321 654321 7654321 87654321 for(i=1;i<=8;i++) {for(j=i;j>=1;j--) printf(“%3d”,j); printf(“\n”); } 21
breakvecontinueKomutları breakkomutuherhangibirdöngükomutuiçinde kullanıldığındadöngüdençıkılmasınısağlar. for(i=1;i<=10;i++) { printf(“Sayigiriniz:”); scanf(“%d”,&sayi); if(sayi<=0) break; } printf(“%dpozitifsayigirildi.”,i-1); 22
breakvecontinueKomutları Döngününherhangibiraşamasında continue komutunagelindiğinde,oturunyürütümüonoktadakesilir veyürütümbirsonrakituriledevameder. toplam=0; for(i=1;i<=5;i++) { printf("Sayigiriniz:"); scanf("%d",&sayi); if(sayi<=0) {i--; continue;} toplam+=sayi; } printf(“Toplam:%d”,toplam); 23