logo

לולאות ג'אווה

נסה את זה ב-GfG Practice הִתקַדְמוּת' title=

לולאות בתכנות מאפשרות לסט של הוראות לפעול מספר פעמים בהתבסס על תנאי. בג'אווה ישנם שלושה סוגים של לולאות אשר מוסברים להלן:

1. עבור לולאה

לולאת for משמשת כאשר אנו יודעים את מספר האיטרציות (אנו יודעים כמה פעמים אנו רוצים לחזור על משימה). הצהרת for כוללת את תנאי האתחול והגדלה/הפחתה בשורה אחת. 

דוּגמָה: תוכנית Java להלן מדגימה לולאת for שמדפיסה מספרים מ-0 עד 10 בשורה אחת.



Java
// Java program to demonstrates the working of for loop import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i <= 10; i++) {  System.out.print(i + ' ');  }  } } 

תְפוּקָה
0 1 2 3 4 5 6 7 8 9 10 

תַחבִּיר:

עבור (אתחול; מצב; הגדלה/הפחתה) {

// קוד לביצוע

}

התמונה למטה מדגימה את תרשים הזרימה של לולאת for:

בעוד לולאה' title=תרשים זרימה של for -לולאה
  • מצב אתחול : כאן אנו מאתחלים את המשתנה בשימוש. זה מסמן את ההתחלה של לולאת for. ניתן להשתמש במשתנה שכבר הוכרז או שניתן להכריז על משתנה מקומי ללולאה בלבד.
  • מצב בדיקה: הוא משמש לבדיקת מצב היציאה עבור לולאה. זה חייב להחזיר ערך בוליאני. זוהי גם לולאת בקרת כניסה מכיוון שהתנאי נבדק לפני ביצוע הצהרות הלולאה.
  • ביצוע הצהרה : ברגע שהתנאי מוערך כאמת, ההצהרות בגוף הלולאה מבוצעות.
  • הגדלה/הקטנה : הוא משמש לעדכון המשתנה לאיטרציה הבאה.
  • סיום לולאה :כאשר המצב הופך לשווא, הלולאה מסתיימת מסמנת את סוף מחזור החיים שלה.

פֶּתֶק : קיימת צורה נוספת של לולאת for המכונה משופר עבור לולאה או (עבור כל לולאה).

מהי מפה ג'אווה

משופר עבור לולאה (עבור כל אחד)

לולאה זו משמשת לחזרה על מערכים או אוספים.

דוּגמָה : תוכנית Java להלן מדגימה לולאה משופרת (עבור כל לולאה) לחזרה דרך מערך ולהדפיס שמות.

Java
// Java program to demonstrate  // the working of for each loop import java.io.*; class Geeks {  public static void main(String[] args)  {  String[] names = { 'Sweta' 'Gudly' 'Amiya' };  for (String name : names) {  System.out.println('Name: ' + name);  }  } } 

תְפוּקָה
Name: Sweta Name: Gudly Name: Amiya 

תַחבִּיר:

for (משתנה dataType: arrayOrCollection) {

// קוד לביצוע

}

2. תוך כדי לולאה

לולאת while משמשת כאשר אנו רוצים לבדוק את התנאי לפני ביצוע גוף הלולאה.

דוּגמָה: תוכנית Java להלן מדגימה לולאת while שמדפיסה מספרים מ-0 עד 10 בשורה אחת.

Java
// Java program to demonstrates  // the working of while loop import java.io.*; class Geeks {  public static void main(String[] args)  {  int i = 0;  while (i <= 10) {  System.out.print(i + ' ');  i++;  }  } } 

תְפוּקָה
0 1 2 3 4 5 6 7 8 9 10 

תַחבִּיר:

while (תנאי) {

// קוד לביצוע

}

התמונה למטה מדגימה את תרשים הזרימה של לולאת while:

מה האינטרנט
עשה תוך כדי לולאה' loading='lazy' title=תרשים זרימה של לולאת while
  • בעוד לולאה מתחילה עם בדיקת המצב הבולאני. אם הוא מוערך כ-true אז הצהרות גוף הלולאה מבוצעות אחרת ההצהרה הראשונה שלאחר הלולאה מבוצעת. מסיבה זו היא נקראת גם Entry control loop
  • ברגע שהתנאי מוערך כאמת, ההצהרות בגוף הלולאה מבוצעות. בדרך כלל ההצהרות מכילות ערך עדכון עבור המשתנה המעובד עבור האיטרציה הבאה.
  • כאשר המצב הופך לשווא, הלולאה מסתיימת מה שמסמן את סוף מחזור החיים שלו.

3. עשה תוך כדי לולאה

לולאת ה-Do-While מבטיחה שבלוק הקוד יבוצע לפחות פעם אחת לפני בדיקת המצב.

דוּגמָה : תוכנית Java להלן מדגימה לולאת עשה תוך כדי הדפסה של מספרים מ-0 עד 10 בשורה אחת.

Java
// Java program to demonstrates  // the working of do-while loop import java.io.*; class Geeks {  public static void main(String[] args)  {  int i = 0;  do {  System.out.print(i + ' ');  i++;  } while (i <= 10);  } } 

תְפוּקָה
0 1 2 3 4 5 6 7 8 9 10 

תַחבִּיר:

לעשות {

// קוד לביצוע

} while (תנאי);

התמונה למטה מדגימה את תרשים הזרימה של לולאת עשה תוך כדי:

' loading='lazy' title=תרשים זרימה של לולאת עשה תוך כדי
  • do while loop מתחיל עם ביצוע ההצהרה. אין בדיקה של שום תנאי בפעם הראשונה.
  • לאחר ביצוע ההצהרות ועדכון ערך המשתנה התנאי נבדק לגבי ערך אמיתי או לא נכון. אם הוא מוערך נכון, האיטרציה הבאה של הלולאה מתחילה.
  • כאשר המצב הופך לשווא, הלולאה מסתיימת מה שמסמן את סוף מחזור החיים שלו.
  • חשוב לציין שלולאת ה-do-while תבצע את ההצהרות שלה לפחות פעם אחת לפני בדיקת תנאי כלשהו ולכן היא דוגמה ללולאת שליטה ביציאה.

טעויות לולאה נפוצות וכיצד להימנע מהן

אם לא נעשה שימוש נכון בלולאות, הן עלולות להכניס מלכודות ובאגים המשפיעים על קריאת ביצועי הקוד ופונקציונליותם. להלן כמה מלכודות נפוצות של לולאות:

1. לולאות אינסופיות

זוהי אחת הטעויות הנפוצות ביותר בעת יישום כל סוג של לולאה היא שאולי היא לעולם לא תצא, כלומר הלולאה פועלת לזמן אינסופי. זה קורה כאשר המצב נכשל מסיבה כלשהי.

סוגי לולאות אינסופיות:

  • אינסופי עבור Loop
  • אינסופי בזמן לולאה

דוּגמָה: כאן שתי הדוגמאות מדגימות את הלולאות האינסופיות.

Infinite For Loop
// Java program to demonstrate  // the infinite for loop import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i < 5; i--) {  System.out.println(  'This loop will run forever');  }  } } 
Infinite While Loop
// Java Program to demonstrate  // the infinite while loop import java.io.*; class Geeks {  public static void main(String[] args)  {  while(true)  {  System.out.println(  'Basic example of infinte loop');  }  } } 

תְפוּקָה: כאשר אתה מפעיל את שני הקודים לעיל, תקבל שגיאת TLE (Exceeded Time Limit).

2. שגיאות מנותקות

שגיאות Off-by-One נגרמות כאשר הלולאה פועלת פעם אחת יותר או אחת פחות ממה שרצית. זה בעצם קורה כאשר מצב הלולאה אינו מוגדר כהלכה.

דוּגמָה : תוכנית Java להלן מדגימה שגיאה Off-by-One שבה הלולאה פועלת 6 פעמים וציפינו שהיא תפעל 5 פעמים.

Java
// Java Program to demonstrates Off-by-One Errors import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i <= 5; i++) {  System.out.print(i + ' ');  }  } } 

3. שינוי משתני לולאה בתוך הלולאה

כאשר אנו משנים את מצב הלולאה (כמו i) בתוך הלולאה זה יכול לגרום ללולאה לדלג על איטרציות מסוימות או להתנהג בדרכים שלא ציפינו. זה עלול להוביל לשגיאות או להתנהגות בלתי צפויה.

מפה חוזרת ב-java

דוּגמָה : תוכנית Java להלן מדגימה שינוי של משתנה הלולאה בתוך הלולאה שגורם ללולאה לדלג על איטרציות מסוימות ולהתנהג בצורה בלתי צפויה.

Java
// Java program demonstrates  // modification in i variable import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i < 5; i++) {  if (i == 2) {    // Modifies the loop variable and skips  // the next iteration  i++;  }  System.out.println(i);  }  } } 

4. גוף לולאה ריק

גוף לולאה ריק מתרחש כאשר לולאה נכתבת לחזרה אך אינה מבצעת פעולות כלשהן בתוך הלולאה. הפעלת לולאה ללא פעולות שימושיות בתוכה עשויה להיות מבלבלת.

דוּגמָה: תוכנית Java להלן מדגימה גוף לולאה ריקה.

Java
// Java program to demonstrates Empty loop body import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i < 10; i++) {    // Empty body no operations  }  } } 

לא ייווצר פלט עבור זה מכיוון שגוף הלולאה ריק.

טבלת סיכום

סוג לולאה

מתי להשתמש

בדיקת מצב

מבצע לפחות פעם אחת?

עבור לולאה

כאשר אתה רוצה איטרציות מדויקות

לפני גוף הלולאה זה נקרא Entry-controlled.

לֹא

עיצוב יחיד

בעוד לולאה

כאשר אתה צריך תחילה בדוק מצב.

לפני גוף הלולאה זה נקרא Entry-controlled.

לֹא

לולאת עשה תוך כדי

כאשר אתה צריך לרוץ לפחות פעם אחת

לאחר גוף הלולאה זה נקרא Exit-controlled.

כֵּן

לכל לולאה

כאשר אתה מעבד את כל פריטי האוסף

טיפול פנימי

לֹא

פוסטים קשורים:

  • עבור לולאה
  • בעוד לולאה
  • לולאת עשה תוך כדי
צור חידון