Let's learn C
לולאות
אנו משתמשים בלולאות כאשר יש צורך ברשימת קוד רב ש"חוזר על עצמו" או כמעט "חוזר על עצמו".
לולאה בודקת תנאי מסוים בהתחלה ולאחר מכן במידה והטענה התקבלה כלא שגויה מתבצע קטע קוד שנמצא בתוך סוגריים מסולסלים
(בדרך כלל, קיימת החרגה אם הלולאה מבצעת פעולה אחת בלבד).
סוגי לולאות:
- לולאת for – לולאה שרצה מהגודל של האינדקס i עד לתנאי העצירה וגדלה בקצב קבוע.
- לולאת while – לולאה שרצה עד שהתנאי שבתוך הסוגריים העגולים לא מתקיים.
-
לולאת do while – לולאת while שהתוספת שלה היא שמתבצע קוד לפני הבדיקה
(do = תעשה , while = תבדוק).
חותמת הלולאות תיראה כך:
חותמת של for:
#include <stdio.h>
void main()
{
//for decleration
int i;
for (i = 0; i < number; i++)
{
// code
}
}
חותמת של while:
#include <stdio.h>
void main()
{
//while decleration
while (something)
{
// code
}
}
חותמת של do-while:
#include <stdio.h>
void main()
{
//do-while decleration
do
{
// code
} while (something);
}
דוגמה ללולאת for:
במקום לרשום:
#include <stdio.h>
void main()
{
printf("1\n");
printf("2\n");
printf("3\n");
printf("4\n");
printf("5\n");
}
נוכל לרשום:
אם נסתכל על שורת הקוד השנייה נוכל לראות שלושה דברים:
- תנאי התחלה (i=0): מראה לנו מאיפה להתחיל את הספירה.
- תנאי עצירה (i < 5): מראה לנו מתי עלינו לעצור.
- מהו השינוי (i++): מראה לנו שבכל סיבוב של הלולאה (איטרציה) אנו מגדילים את המשתנה i באחד בדיוק.
#include <stdio.h>
void main()
{
int i;
for(i=0 ; i < 5 ;i++)
{
printf("%d\n", i);
}
}
דוגמה ללולאת while:
פה אנו מגדירים משתנה בשם flag ו counter והלולאה תיעצר רק אם counter יהיה גדול או שווה ל10 וזאת משום שflag ישתנה ל0 ולולאת הwhile שלנו תפסיק להתקיים.
#include <stdio.h>
void main()
{
int flag = 1 , counter = 0;
while (flag != 0)
{
if(10 <= counter)
{
flag = 0;
}
else
{
counter++;
}
}
}
דוגמה ללולאת do-while:
פה אנו מגדירים שני משתנים number, sum.
המחשב יקלוט מספרים עד שאנו נכניס לו את המספר 0.
כלומר, הלולאה תעצר רק כשאשר נכניס לו את המספר 0.
ולאחר שאנו נכניס את הערך 0 המחשב ידפיס את הסכום.
*אין צורך לתת ערך התחלתי למשתנה number כי הלולאה תרוץ פעם אחת לפחות.
#include <stdio.h>
void main()
{
int number ,sum = 0;
do
{
printf("Please enter number (enter 0 to stop)\n");
//for visual studio 2017 or above use scanf_s
scanf("%d",&number);
sum += number;
} while (number != 0);
printf("the sum is : %d",sum);
}