מה זה מחזורים
תוכנית שנכתבה ב-Java מורכבת מקוד ספציפי. בדרך כלל זה מבוצע ברצף: שורה אחר שורה, מלמעלה למטה. אבל יש גם מבני קוד שמשנים את הביצוע הליניארי של התוכנית. הם נקראים מבני בקרה . הודות להם, ניתן להפעיל קוד באופן סלקטיבי. לדוגמה, הפעל בלוק קוד אחד במקום אחר. לולאות הן סוג של מבנה בקרה לארגון ביצוע חוזר של אותה פיסת קוד. הקוד בתוך מבנה בקרה כזה מבוצע באופן מחזורי. כל ביצוע של הקוד הוא איטרציה של הלולאה . מספר האיטרציות נשלט על ידי תנאי הלולאה. הקוד שרץ בתוך לולאה נקרא גוף הלולאה . ידועים סוגי המחזורים הבאים :-
לולאות תנאי מוקדם: תנאי הביצוע נקבע לפני האיטרציה הראשונה.
-
לולאות עם postcondition: תנאי הביצוע נקבע לאחר האיטרציה הראשונה (כך שהם תמיד מבוצעים לפחות פעם אחת). שימושי כאשר אתה צריך לבצע פעולה מסוימת עד למימוש תנאי מסוים: למשל, קריאת הקלט של המשתמש עד שהוא מזין את המילה "עצור".
-
לולאות מונה: מספר האיטרציות נקבע על ידי המונה המדומה. תנאי הלולאה מציין את הערכים ההתחלתיים והסופיים שלו. בכל איטרציה המונה גדל. אנו יכולים לקבוע את מספר האיטרציות מראש.
לולאות אלה שימושיות כאשר אתה צריך לחזור על כל האלמנטים באוסף. לולאות עם מונה נקראות "לולאות ל...". "עבור כל רכיב של אוסף מסוים, בצע את הפעולות הבאות."
ישנם מקרים בהם ניתן להפסיק את ביצוע לולאה לפני הגעה למצבה. למשל, אם יש לנו אוסף של 100 מספרים ועלינו להבין אם הוא מכיל מספרים שליליים. נוכל להתחיל לעבור בלולאה בין כל המספרים באמצעות לולאת for. אבל כשאנחנו מוצאים את המספר השלילי הראשון, אנחנו לא צריכים לעבור על המספרים הנותרים. אנו יכולים להפסיק את ביצוע הלולאה אם המשך הביצוע שלה אינו הגיוני. מצבים כאלה נקראים הפרעת מחזור.
-
לולאות ללא תנאי הן לולאות הפועלות בלי סוף. לדוגמה: "בעוד 1=1, הדפס "1=1"". תוכנית כזו תפעל עד להפסקה ידנית.
לולאות אלו שימושיות גם כאשר משתמשים בהן בשילוב עם הפסקת הלולאה מבפנים. השתמש בהם בזהירות כדי לא לגרום לתוכנית לקפוא.
אתה יכול ללמוד עוד על לולאות בשפת התכנות Java ברמה 4 של קורס JavaRush. במיוחד עם while ועבור לולאות.
לולאות בג'אווה
עכשיו בואו נסתכל על לולאות ב-Java. ישנם מספר סוגים שלהם בשפה זו:while
- לולאה עם תנאי מוקדם;do..while
- מחזור עם תנאי פוסט;for
- לולאה עם מונה (לולאה עבור);for each..
- לולאה "לכל..." - סוג של for עבור איטרציה דרך אוסף של אלמנטים.
while
, do.. while
ויכול for
לשמש כלולאות ללא תנאי. אתה יכול להשוות את התחביר של לולאות בשפות תכנות שונות ברמה הרביעית של האימון בקורס JavaRush. לדוגמה, for ו-while לולאות. הבה נבחן בקצרה כל אחד מהסוגים המוצגים.
בעוד לולאה
הלולאה הזו בג'אווה נראית כך:while (expression) {
statement(s)
}
כאן:
expression
- תנאי לולאה, ביטוי שאמור להחזירboolean
ערך.statement(s)
- גוף לולאה (שורת קוד אחת או יותר).
expression
. אם תוצאת הביטוי נכונה , גוף הלולאה מבוצע statement(s)
. דוגמא:
public class WhileExample {
public static void main(String[] args) {
int countDown = 10;
while (countDown >= 0) {
System.out.println("До старта: " + countDown);
countDown --;
}
System.out.println("Поехали !");
}
}
סיכום:
До старта: 10
До старта: 9
До старта: 8
До старта: 7
До старта: 6
До старта: 5
До старта: 4
До старта: 3
До старта: 2
До старта: 1
До старта: 0
Поехали !
באמצעות while
, אתה יכול ליצור לולאה אינסופית:
while (true) {
// тело цикла
}
כדי להפריע לביצוע של לולאה, נעשה שימוש באופרטור break
. לדוגמה:
public class WhileExample {
public static void main(String[] args) {
int count = 1;
while (true) {
System.out.println("Строка №" + count);
if (count > 3) {
break;
}
count++; // Без наращивания цикл будет выполняться вечно
}
}
}
סיכום:
Строка №1
Строка №2
Строка №3
Строка №4
אתה יכול לתרגל כתיבת לולאות משלך ברמה 4 של קורס JavaRush.
לעשות.. תוך כדי לולאה
המבנהdo.. while
נראה כך:
do {
statement(s)
} while (expression);
כאן:
expression
- תנאי לולאה, ביטוי שאמור להחזירboolean
ערך.statement(s)
- גוף לולאה (שורת קוד אחת או יותר).
while
, ערך הביטוי יוערך לאחר כל איטרציה. אם התוצאה של הביטוי היא אמת , גוף הלולאה יבוצע שוב statement(s)
(לפחות פעם אחת). דוגמא:
public class DoWhileExample {
public static void main(String[] args) {
int count = 1;
do {
System.out.println("count = " + count);
count ++;
} while (count < 11);
}
}
סיכום:
count = 1
count = 2
count = 3
count = 4
count = 5
count = 6
count = 7
count = 8
count = 9
count = 10
עבור לולאה
לולאת ג'אווה זו נראית כך:for (initialization; termination; increment) {
statement(s)
}
כאן:
initialization
- ביטוי שמתחיל ביצוע של הלולאה. מבוצע רק פעם אחת בתחילת הלולאה. לרוב, ביטוי זה מאתחל את מונה הלולאהtermination
-boolean
ביטוי המווסת את סוף הלולאה. אם התוצאה של הביטוי היא false , הלולאהfor
תישבר.increment
- ביטוי שמתבצע לאחר כל איטרציה של הלולאה. לרוב, ביטוי זה כולל הגדלה או הפחתה של משתנה מונה.statement(s)
- גוף המחזור.
initialization
, termination
, increment
הם אופציונליים. אם נשמיט כל אחד מהם, נקבל לולאה אינסופית:
// бесконечный цикл
for ( ; ; ) {
// code тела цикла
}
לולאה לדוגמה for
:
public class ForExample {
public static void main(String[] args) {
for (int i = 1; i < 6; i++) {
System.out.println("Строка №" + i);
}
}
}
סיכום:
Строка №1
Строка №2
Строка №3
Строка №4
Строка №5
סדנה בנושא לולאת for מוצגת ברמה 4 של קורס JavaRush.
לולאה לכל אחד
לולאת ג'אווה זו היא סוג של לולאהfor
לחזרת אוספים ומערכים. המבנה for each
נראה כך:
for (Type var : vars) {
statement(s)
}
כאן:
vars
- משתנה, רשימה קיימת או מערךType var
- הגדרת משתנה חדש מאותו סוג (Type
) כמו האוסףvars
.
public class ForExample {
public static void main(String[] args) {
String[] daysOfWeek =
{ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
for (String dayOfWeek : daysOfWeek) {
System.out.println(dayOfWeek);
}
}
}
לולאות Java נלמדות בקורס JavaRush ברמה הרביעית של קווסט Java Syntax. נסה את כוחך בפתרון בעיות בנושא זה :)
GO TO FULL VERSION