#include <stdio.h> int main() { printf( "Hello, World!\n"); printf( "Hello, World!\n"); printf( "Hello, World!\n"); printf( "Hello, World!\n"); printf( "Hello, World!\n"); }
שכאשר נריץ אותה נקבל את התוצאה הבאה:
!Hello, World
!Hello, World
!Hello, World
!Hello, World
!Hello, World
אין ספק שזה היה פשוט מאוד. אז תארו לכם סיטואציה שבה נרצה להוציא לפועל את אותה הפקודה ברצף במשך אלפי פעמים. אנו בהחלט לא נכתוב אלפי פקודות printf, בשפות תכנות יש קונספט חשוב שנקרא לולאות או לופים (Loops), אשר מסייע לנו להוציא לפועל את אותה הפקודה ברצף של כמה פעמים שנרצה, וקונספט זה קיים כמעט בכל שפות התכנות בצורה כזו או אחרת.
כעת נכתוב שוב את אותה התוכנית, רק שהפעם נעזר בלולאת while loop שנרחיב עליה בהמשך:
#include <stdio.h> int main() { int i = 0; while ( i < 5 ) { printf( "Hello, World!\n"); i = i + 1; } }
על מנת שנקבל את התוצאה הבאה:
!Hello, World
!Hello, World
!Hello, World
!Hello, World
!Hello, World
תכנית זו השתמשה בלולאת while loop על מנת להוציא לפועל את אותה הפקודה מספר פעמים ברצף.
- בתחילת התוכנית הגדרנו משתנה מסוג int בשם i והזנו לו ערך של 0
- לאחר מכן השתמשנו בלולאת while שתבצע את פקודת ה-printf כל עוד הערך של i קטן מ-5
- והשורה שמתחת מוסיפה 1 לערך של המשתנה i בכל פעם שפקודת ה-printf יוצאת לפועל
- כך שהתכנית תסתיים לאחר 5 פעמים שהפקודה printf תצא לפועל, כי הערך של i יהיה מעל 5
כעת שימו לב לתרשים הזרימה הבא, שהוא נכון לרוב שפות התכנות הקיימות:
משום שזהו מדריך מבוא לשפות תכנות באמצעות שפת C ולא מדריך שלם לשפת C, אנו נלמד חלק מסוגי הלולאות אשר קיימות בשפת C, כאשר תסיימו קורס זה תוכלו לקחת קורס מקיף לשפת C שבו תלמדו את כל סוגי הלולאות אשר קיימות בשפת C.
לולאת while Loop
זהו התחביר הבסיסי לכתיבת לולאת while loop:
while ( condition ) { /*....while loop body ....*/ }
כאשר מקטע קוד קצרצר זה יוכל לתואר על ידי תרשים הזרימה הבא:
אלו כמה נקודות שחשוב לזכור לגבי לולאות while:
- לולאת while מתחילה עם מילת המפתח while ולאחריה מגיע תנאי בתוך סוגריים ( )
- בהמשך משפט ה-while, גוף הלולאה יגיע בתוך סוגריים מסולסולות { }
- גוף הלולאה יכול להכיל בתוכו שורה אחת או יותר של קוד שיבוצעו שוב ושוב
- הלולאה תמשיך לחזור על עצמה כל עוד הערך של התנאי נשאר אמת
- מרגע שהערך של התנאי הופך לכזב, הלולאה תחדול מלחזור על עצמה והתוכנית תמשיך לרוץ מאותה הנקודה
- התנאי הוא בדרך כלל משפט השוואתי שהתוצאה שלו היא אמת – true או כזב – false
לולאת do while Loop
לולאת while מאפשרת לנו לבדוק תנאי לפני הפעלת הקוד שבגוף הלולאה, לעומת זאת לולאת do while מאפשרת לנו קודם להריץ את הקוד שבגוף הלולאה, לפני שאנחנו בודקים את התנאי, לפי התחביר הבא:
do { /*....do...while loop body ....*/ } while ( condition );
שניתן לתאר לפי תרשים הזרימה הבא:
אם נכתוב את אותה התוכנית רק שהפעם נעשה זאת באמצעות לולאת do while, אז הקוד שלנו יראה בדיוק כך:
#include <stdio.h> int main() { int i = 0; do { printf( "Hello, World!\n"); i = i + 1; } while ( i < 5 ); }
ואז נקבל את התוצאה הרצויה:
!Hello, World
!Hello, World
!Hello, World
!Hello, World
!Hello, World
הפקודה break
כאשר התוכנית נתקלת בפקודת break בתוך לולאה, הלולאה תיפסק והתוכנית תמשיך לרוץ מאותה הנקודה. ניתן לתאר את פקודת break לפי תרשים הזרימה הבא:
לפניכם תוכנית שבה לולאה שמשתמשת בפקודה break כדי לעצור את הלולאה לאחר 3 פעמים:
#include <stdio.h> int main() { int i = 0; do { printf( "Hello, World!\n"); i = i + 1; if( i == 3 ) { break; } } while ( i < 5 ); }
שכאשר נריץ את התוכנית נקבל את הפלט הבא:
!Hello, World
!Hello, World
!Hello, World
הפקודה continue
הפקודה continue נועדה להמשיך את הפעולה, בניגוד ל-break שעוצר אותה. שימו לב לתרשים הזרימה שלפניכם:
בתכנית הבאה תופיע לולאה שמשתמשת בפקודה continue, כאשר פעולתה תיפסק לאחר 3 פעמים, ומשום שהשתמשנו בלולאת do while, הפקודה תבוצע סך הכל ארבעה פעמים לפני שתסתיים התכנית.
#include <stdio.h> int main() { int i = 0; do { if( i == 3 ) { i = i + 1; continue; } printf( "Hello, World!\n"); i = i + 1; } while ( i < 5 ); }
!Hello, World
!Hello, World
!Hello, World
!Hello, World
לולאות בשפת Java
זוהי דוגמה של אותה התוכנית, כאשר הפעם היא נכתבה בשפת Java:
public class Main { public static void main(String []args) { int i = 0; while ( i < 5 ) { System.out.println("Hello, World!"); i = i + 1; } } }
!Hello, World
!Hello, World
!Hello, World
!Hello, World
!Hello, World
הפקודות break ו-continue עובדות בשפת Java באופן זהה לזה של C.
לולאות בשפת Python
זוהי דוגמה של אותה התוכנית, כאשר הפעם היא נכתבה בשפת Python:
i = 0 while (i < 5): print ("Hello, World!") i = i + 1 print ("Loop ends")
!Hello, World !Hello, World !Hello, World !Hello, World !Hello, World Loop ends
לשם הידע הכללי, שפת התכנות Python תומכת אף היא בלולאות do while. כמו כן שימו לב כי לא היינו צריכים לתחום את גוף הלולאה בתוך סוגריים מסולסלות { } כפי שנאלצנו ב-C. הפקודות break ו-continue בשפת Python, עובדות באופן זהה לזה של C אך שימו לב שהוספנו שורת קוד שתודיע לנו שהסתיימה הלולאה.