הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   תכנות - מדריכים, code snippets (https://hosts.co.il/forums/forumdisplay.php?f=68)
-   -   [מדריך] PHP - לולאות (while, do...while, for & לולאות מקוננות) (*מומלץ!) (https://hosts.co.il/forums/showthread.php?t=19749)

BBman 13-04-06 12:54

[מדריך] PHP - לולאות (while, do...while, for & לולאות מקוננות) (*מומלץ!)
 
שלום לכולם !

זהו מדריך ללולאות הבאות :

While - הלולאה הפשוטה ביותר, בודקת אימות של תנאי ואז מבצעת ביטוי כלשהו עד שהתנאי הנ"ל יחשב שקר.
do...while - מבצעת ביטוי, ולאחר מכן מאמתת תנאי עד אשר יחשב שקר.
for - הלולאה המורכבת אך הנוחה , מעידה על משתנה חדש, מציבה לו תנאי, ובמידת התנאי (אמת או שקר) מבצעת פעולה מסויימת.

הלולאה while -

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

לולאת While נכתבת כך :

PHP קוד:

<?php
while(conditon)    {
expresion;
}
?>

הסבר :

condition - פשוטו כמשמעו , תנאי, אשר הלולאה תלויה בו על מנת לבצע את הפעולה expresion.

expresion - הביטוי אשר נרצה לבצע שוב ושוב כל עוד התנאי הוא אמת.

תרשים זרימה לולאת while = >

http://www.zipload.us/upload/while.bmp

וכעת, אדגים שימוש פשוט בלולאת While :

PHP קוד:

<?php
$a
=1;
while(
$a<=5)    {
echo 
"$a<Br>";
$a++;
}
?>

מה שבעצם עשינו כאן הוא :

שורה 1 : התחלת מסמך php חדש.
שורה 2 : הצהרה על משתנה חדש בשם a והצבת הערך שלו 1.
שורה 3 : התחלת לולאת ה-while והצבת התנאי : "האם a קטן או שווה ל-5?"
שורה 4+5:בצע ביטוי + העלה את a ב-1 כך שהלולאה לא תחזור על עצמה עד אין סוף.
תוצאות הלולאה : הדפסת המס' 1 - 5 .

ולמי שלא הבין :

מה שעשינו כאן בעצם זה מתן תנאי למשתנה a , והתנאי או a<=5 ( האם a קטן או שווה ל-5 ?) ובמידת אמת, אז נדפיס את a, ולאחר מכן נגדיל את ערכו באחד, כך שהתוצאה היא כזאת.

ציטוט:

loop : a=1 ,a<=5?, print a,a=a+1,do it again!....
a=2,a<=5? , print a,a=a+1,do it again!....
אפשר גם להשתמש ב-while לכל מני משימות, לדוגמא :

הדפסת כל הנתונים ממסד נתונים, בדיקות אמת וכו'...

לולאת do...while

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

מבנה של הלולאה הנ"ל הינו :

PHP קוד:

do    
{
expresion
}while(
condition); 

ותוצאותיה דומות לשל while , אך דרך האימות שונה.

תרשים זרימה ללולאה זו :

http://img96.imageshack.us/img96/3033/dowhile6pf.png

דוגמא לשימוש בלולאה זו :

PHP קוד:

$b=1;
do
{
echo 
"$b<br>";
$b++;
}
while(
$b<=5); 

הסבר :

שורה 1 : הצהרה על משתנה חדש b והצבת ערכו 1.
שורה 2 : התחלת לולאת do...while .
שןרה 3+4: ביצוע פעולה + הוספת 1 לערכו של b.
שורה 7 : בדיקת אימות התנאי.

לולאת for

הלולאה השימושית ביותר ע"פ דעתי, והנוחה ביותר.

נכתבת כך :

PHP קוד:

for(erecting;condition;var++ or var--)
{
expresion;


אולי נראה קצת מפחיד, אך לא =] ! הסבר :

erecting - באיזור זה אנו מצהירים על משתנה חדש ומציבים בו ערך.
condition - תנאי, בדר"כ תנאי מתמטי.
var++ or var-- = מן ביטוי, הוספת/הקטנת הערך של המשתנה שהצבנו ב-erecting ב-1.
*כפי ששמתם לב, שלושת האזורים הללו מופרדים ב-; , זכרו זאת!

עכשיו נכתוב לולאה פשוטה, שתדפיס את המס' 1-5 בדיוק כמו הלולאות הקודמות :
PHP קוד:

<?php
for($a=1;$a<=5;$a++)    {
echo 
"$a<Br>";
}
?>

הסבר :

שורה 2 -

הצהרה על משתנה חדש, a והצבת הערך שלו 1.
PHP קוד:

$a=1

:
: תנאי - האם a קטן או שווה ל-5 ?
PHP קוד:

$a<=5

: במידת אמת, הגדל את ערכו של a ב-1.
PHP קוד:

$a++ 

שורה 3 : פעולה, הדפסת המשתנה a.

תרשים ללואה for :

http://img100.imageshack.us/img100/1486/for4nc.png

לולאות מקוננות :

לולאות מקוננות הן לולאות אשר נמצאות בלולאות אחרות (לולאה בתוך לולאה).
משמשות בעיקר למשימות לולאה כפולות אשר אי אפשר לבצען בעזרת לולאה אחת, דוגמא : הדפסת "פירמידת" תווים.
ראשית, עלינו לספור את מס' התווים אשר יודפסו, ואח"כ לספור את הפעמים אשר לולאה זאת תתבצע.

הקוד ללואת פירמידת תווים :

PHP קוד:

<?php
for($a=0;$a<=5;$a++)
{
for(
$b=0;$b<=$a;$b++)
{
echo 
"*";
}
echo 
"<Br>";
}
?>

הסבר :

שורה 2 : לולאה לספירת התווים, במקרה זה אני רוצה שיודפסו עד 5 תווים.
שורה 3 ספירת השורות והפעמים.
שורה 5 : הדפסה.
.......

זהו! אלו הלולאות הפשוטות, בהצלחה!

meshuga 13-04-06 13:05

א. תודה רבה.
ב. דבר אחד ששמתי לב עכשיו (עברתי בריפרוף) בfor אפשר לשים לא רק ++ או -- אפשר לשים ביטוי שלם. כלומר אפשר לשים נגיד
PHP קוד:

for($i=0;$i<=1;$i=4+5+$i

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

somebody 13-04-06 13:20

אפשר גם כפל לדוגמא:
PHP קוד:

for(.....,$i*=2)
$i+=43 

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

The Penguin 13-04-06 13:37

תודה מוררררר!!!

מדריך נחמד !

meshuga 13-04-06 14:04

ציטוט:

נכתב במקור על ידי somebody
אפשר גם כפל לדוגמא:
PHP קוד:

for(.....,$i*=2)
$i+=43 

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

לדעתי כן....
ועוד משהו שנזכרתי..שאנשים שוכחים..תנאי יכול להכיל כמה דברים (וגם/או) (||\&&) ולא חייב להיות רק תנאי אחד..;)...

bigimot 13-04-06 14:12

PHP קוד:

<?php 
for($a=0;$a<=5;$a++) 

for(
$b=0;$b<=$a;$b++) 

echo 
"*"

echo 
"<Br>"

?>

במקום לעשות את זה ככה, תעשה ככה:

PHP קוד:

<?php 

  
for($a=0;$a<=5;$a++) 
  { 
        for(
$b=0;$b<=$a;$b++) 
        { 
              echo 
"*"
        } 
        echo 
"<Br>"
  } 

?>

יותר נוח לקריאה נראה לי...

Level-Serv 13-04-06 15:54

יפה מאוד..
רק משהו אחד- נהוג לומר על while($a<=5) בעברית ככה:
כל עוד a קטן או שווה לחפש.

LosNir 13-04-06 19:07

אחלה מדריך!
חידש לי קצת :)


כל הזמנים הם GMT +2. הזמן כעת הוא 11:51.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ