שפת C/לולאות: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Gran (שיחה | תרומות)
מ שוחזר מעריכה של 62.219.165.105 (שיחה) לעריכה האחרונה של Atavory
שורה 3:
''לולאות'' משמשות לחזרה על קטע קוד מספר פעמים. לולאה חוסכת בזמן כתיבת התוכנה ומסדרת את הקוד.
 
==הצורך בלולאות==
מדעי המחשב זה ללסביות כמו ש.
 
ב[[שפת C/פעולות חשבוניות|פעולות חשבוניות]], ראינו [[שפת C/פעולות חשבוניות#דוגמה: המרה בין סוגי מעלות שונים|דוגמה להמרה בין סוגי מעלות שונים]] כיצד להמיר ממעלות ב-Celsius למעלות ב-Fahrenheit. נניח שאנו רוצים להדפיס את התרגום למעלות Fahrenheit של מעלות ה-Celsius בערכים {{משמאל לימין|0, 2, 4, ..., 20}}. ננסה לעשות זאת כך:
<source lang = "c">
c = 0;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 2;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 4;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 6;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 8;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 10;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 12;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 14;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 16;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 18;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
 
c = 20;
f = 1.8 * c + 32;
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
</source>
 
קל לראות שמשהו בעייתי בקוד, והבעייתיות היתה גוברת לו היינו פועלים בתחום גדול יותר, לדוגמה {{משמאל לימין|0, 2, 4, ..., 100}}. בין היתר:
# הקוד ארוך ומסורבל מאד.
# תמיד ייתכן שהקוד כולל שגיאה כלשהי: ייתכן שטעינו בהעתקת הנוסחה הממירה, לדוגמה. כאן נצטרך לתקן את הקוד ב11 מקומות.
 
בפרק זה נלמד להשתמש בלולאות, המאפשרות לתרגם את הקוד הקודם לקוד תמציתי יותר:
<source lang = "c">
for(c = 0; c <= 20; c += 2)
{
f = 1.8 * c + 32;
 
printf("%d in Celsius is %d in Fahrenheit\n", c, f);
}
</source>
שתוצאתו דומה.
 
==לולאת while==