while و do while در C – آموزش زبان C
در ادامه ی آموزش زبان C برای دانشجویان برق و الکترونیک وارد مباحث while و do while در C میشیم . همچنین 2 دستور ساده اما کاربردی break و continue رو هم توضیح میدم تا جلسه بعدی وارد بخش آرایه ها در c بشیم.
while در C :
شکل کلی این حلقه بصورت زیره:
1 2 3 4 |
while(شرط یا شروط) { ;مجموعه دستورات } |
نکات:
1 -این حلقه تا زمانی که شرط برقرار باشه اجرا میشه. باید توجه داشت که در مجموعه دستورات ، دستوری باشه که شرط حلقه رو نقض کنه وگرنه حلقه ، بینهایت بار اجرا میشه و خطوط بعدی برنامه ادامه پیدا نمیکنه.
2 -اگر در ابتدا شرط برقرار نباشه دستورات داخل حلقه while اجرا نمیشن.
3 -اگر حلقه بی نهایت باشه براي خروج از اون از از کلید break+ ctrl میشه استفاده کرد.
مثال1 :برنامه اي بنویسید که 5 عدد را دریافت کند و مجموع آنها را محاسبه نماید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include<stdio.h> #include<conio.h> main() { int i, sum, x; sum = 0; i = 0; while (i<5) { scanf("%d", &x); sum+= x; i++; } printf("%d", sum); } |
مثال2 :برنامه اي بنویسید که تعدادی عدد را از ورودی دریافت کند و حداکثر و حداقل و میانگین این اعداد را حساب کند. (چون میانگین میخواد تعداد هم مهه.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <stdio.h> #include <conio.h> main() { int n, number, min, max, sum ; float avg; printf("please enter the count of number : " ); scanf("%d", &n); //tedad addat voroodi scanf("%d", &number); max = number; min = number; sum = number; for (int i = 1; i < n; i++) { scanf("%d", &number ); if (number > max) max = number; if (number < min ) min = number; sum = sum + number; } avg = (float) sum / n; printf ("%d %d %f", max, min, avg); } |
درباره ی ساختار ها و الگوریتم ها توضیح دادم جلسه ی for در زبان c ، مثال بالا الگوریتمش رو خودتون بنویسین روی کاغذ ، مطمئن باشین برای درک مفهوم شرط ها بسیار کمکتون میکنه.
do while در C :
همانند ساختار while هستش با این تفاوت که این حلقه حداقل یکبار اجرا میشه و سپس در انتها چک میشه که آیا شرط حلقه درسته یا نه.
شکل کلی دستور while do :
1 2 3 4 5 |
do { ;مجموعه دستورات while(شرط یا شروط); } |
مثال1 :برنامه اي بنویسید که عددي را از ورودي خوانده و آنرا بصورت معکوس نمایش دهد. (به عنوان مثال 123 که معکوس آن میشود 321 .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <stdio.h> #include <conio.h> main() { int number, n; printf ("enter a number"); scanf ("%d", &number); do { n= number %10; printf ("%d", n); number= number/10; } while (number != 0); } |
براي بدست آوردن معکوس عدد باید عدد را بطور متوالی بر 10 تقسیم کنیم و هر دفعه باقیمانده رو چاپ کنیم و اینکار را تا زمانی انجام میدیم که خارج قسمت یا در اینجا متغیر number صفر نشده باشه.
دستور break در C :
این دستور در مورد زیر کاربرد دارد:
1 -خاتمه دادن به case در ساختار switch
2 -خاتمه دادن به حلقه هاي تکرار while- for- while do
پس از اجراي این دستور در حلقه هاي تکرار ، کنترل برنامه به خارج این حلقه ها منتقل می شود .
مثال1 :خروجی برنامه زیر چیست ؟
1 2 3 4 5 6 7 8 9 |
main(){ int i ; for(i=0;i<5;i++) { printf("%d", i); if (i==3) break ; } } |
خروجی : 3 2 1 0
مثال2 : خروجی برنامه زیر چیست؟
1 2 3 4 5 6 7 8 |
main(){ int i; for (i=0;i<5;i++) printf("%d",i) ; if (i!=3) break; } } |
خروجی : 0
دستور Continue در C :
با اجراي این دستور کنترل برنامه به ابتداي حلقه ي تکرار منتقل می شه، در واقع دستورات بعد از continue اجرا نمیشن.
مثال 3 :خروجی برنامه زیر چیست؟
1 2 3 4 5 6 7 8 9 |
main(){ int i ; for(i=0;i<10;i++) { if (i!=3) continue; printf("%d", i) ; } } |
خروجی :3
همه ی کد ها در نرم افزار Devcpp تست شده و عملی هستند!
امتحان کنید 😉
آموزش بخش while و do while در C هم به پایان رسید!
لوینیک رو به دوستانتون هم معرفی کنید 🙂