JavaScript/לולאות מקוננות: הבדלים בין גרסאות בדף

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
תוכן שנמחק תוכן שנוסף
החלפת הדף עם '{{Javascript}} ===דוגמא=== ====קוד==== <pre style="direction:ltr;"> <script language="javascript"> for(i=0;i<5;i++) { for(j=0;j<5;j++) { document.write("*"); } } </...'
שורה 1: שורה 1:
{{Javascript}}
{{Javascript}}
אנו משתמשים בלולאות כשאנו רוצים שיבוצע קטע קוד מסוים מספר פעמים.
==הלולאה while==
===תחביר והסבר===
<pre style="direction:ltr;">
<script language="javascript">
while(condition)
{
command
}
</script>
</pre>
כל עוד מתקיים התנאי (condition), הדפדפן ידפיס את את הפקודה (command) הנמצאת בתוך הסוגריים המסולסלות.
בדרך כלל, שמים אופרטור השוואה לתוך הסוגריים הרגילות המייצגות את התנאי (condition). ולתוך הסוגריים המסולסלות כותבים פקודה (command) כמו למשל, ("התנאי מתקיים")document.write

בכל אופן, תראו את הדוגמאות ואז תבינו טוב יותר במה מדובר.


===דוגמא===
===דוגמא===
שורה 20: שורה 5:
<pre style="direction:ltr;">
<pre style="direction:ltr;">
<script language="javascript">
<script language="javascript">
for(i=0;i<5;i++)
var a=1;
while(a<6) / כל עוד איי קטן מ-6 התנאי הנמצא בין הסוגריים המסולסלות יתקיים.
{
{
for(j=0;j<5;j++)
document.write("המספר כעת הוא" + a);
a=a+1; / איי ועוד אחת
}
</script>
</pre>

====תוצאה====
<pre style="direction:ltr;">
המספר כעת הוא 0
המספר כעת הוא 1
המספר כעת הוא 2
המספר כעת הוא 3
המספר כעת הוא 4
המספר כעת הוא 5
</pre>
====תרשים זרימה====
{{בעבודה}}
[[תמונה:Tarshim.gif]]

==הלולאה do-while==

===הסבר===
הלולאה do-while שונה מwhile רק בהבט אחד הקוד קודם מבוצע פעם אחת (ללא קשר לקיום התנאי) ורק אחר כך התנאי נבדק.
===קוד===
<pre style="direction:ltr;">
<script type="text/javascript">
var i=8;
do
{
{
document.write("The number is " + i);
document.write("*");
document.write("<br />");
i=i+1;
}
}
while (i<3)
</script>
</pre>

===הסבר===
אף שלפי תנאי הלולאה הפקודה מבוצעת רק אם i '''קטן''' מ3, מה שבמקרה זה שקר כיוון שi=8 אם כן הפקודה לא היתה צריכה להתבצע, אך מכיוון שהלולאה היא מסוג do while הפקודה בוצעה בכל אופן אך נעצרה אחר פעם אחת. (אילו i היה שווה 1 הפקודה היתה מתבצעת שלוש פעמים).

==הלולאה for==
===קוד===
<pre style="direction:ltr;">
<script language="javascript">
var i=0;
for (i=0;i<=4;i++)
{
document.write("המספר הוא " + i);
document.write("<br />");
}
}
</script>
</script>
</pre>
</pre>
===הסבר===
החלק הראשון בלולאה תפקידו הצבה ראשונית, כלומר לפני ביצוע הקוד .i=0 החלק השני הוא התנאי, אם i קטן או שווה ל4 בצע את הקוד אשר הוא הפקודה השלישית.

===תוצאה===
<pre style="direction:ltr;">
המספר הוא 0
המספר הוא 1
המספר הוא 2
המספר הוא 3
המספר הוא 4
</pre>

==הפקודה break==
====קוד====
<pre style="direction:ltr;">
<script language="javascript">
var i=0;
for (i=0;i<=4;i++)
{
document.write("המספר הוא " + i);
document.write("<br />");
if (i==2){break;}
}
</script>
</pre>
====הסבר====
הפקודה break תוציא אותנו מהלולאה.
<br />
i שווה ל-0, כל עוד i גדול או שווה ל-4, i יגדל ב-1.
<br />
אם i שווה ל-2, תבוצע יציאה מיידית מהלולאה, כלומר שהספירה תפסק.


====תוצאה====
====תוצאה====
<pre style="direction:ltr;">
<pre style="direction:ltr;">
*****
המספר הוא 0
*****
המספר הוא 1
*****
המספר הוא 2
*****
*****
</pre>
</pre>
==הפקודה contiune==
====קוד====
<pre style="direction:ltr;">
<script language="javascript">
var i=0;
for (i=0;i<=4;i++)
{
if (i==2){continue}
document.write("המספר הוא " + i);
document.write("<br />");

}
</script>
</pre>

====הסבר====
i שווה ל-0,
כל עוד i גדול או שווה ל-4,
i יגדל ב-1.
<br />
אם i שווה ל-2 אז נקפוץ לראש הלולאה. כלומר שנדלג של ההדפסה של 2.

====תוצאה====
<pre style="direction:ltr;">
המספר הוא 0
המספר הוא 1
המספר הוא 3
המספר הוא 4
</pre>

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

<pre style="direction:ltr;">
<script language="javascript">
var i=2;
while (i<3)
{
document.write("The number is " + i);
document.write("<br />");
i--;
}
</script>
</pre>

בדוגמה אנו רואים שאף שיש תנאי עצירה (i<3) הוא אינו תקף אם i קטן מ3 מה שיגרום ללואה אין סופית.

גרסה מ־16:35, 17 באפריל 2008