PDA

View Full Version : کمک در مورد چاپ این خروجی



mfaridi
دوشنبه 09 تیر 1393, 15:33 عصر
سلام دوستادن من به یه مشکل عجیب برخورد کردم
مشکل اینجاست که خروجی این دوتا باهم تفاوت دارن نمیدونم چه اتفاق عجیبی افتاده
function m($x,$y){ for ($x; $x>=0 ;$x--){
for ($y; $y <=0 ;$y++){
echo sprintf('(%d,%d)',$x,$y);
}
echo '<br>';
}
}
m(5,-5);

for ($x = 5; $x>=0 ;$x--){ for ($y = -5; $y <=0 ;$y++){
echo sprintf('(%d,%d)',$x,$y);
}
echo '<br>';
}

mfaridi
دوشنبه 09 تیر 1393, 16:47 عصر
کسی نیست ؟:گریه:

2undercover
دوشنبه 09 تیر 1393, 19:03 عصر
علتش اینه که توی حلقه ی دوم (متغیر y) وقتی که یک بار کامل اجرا میشه، مقدار متغیر y برابر با 0 میشه، خوب وقتی برای بار دوم این حلقه می خواد اجرا بشه، چون y برابر با 0 هست اصلا اجرا نمیشه.

درستش این هست که مقدار متغیر y رو همون اول تابع توی یک متغیر دیگه (مثلا tmp) بریزید و توی حلقه ی for مقدار y رو برابر با tmp قرار بدید.

mfaridi
دوشنبه 09 تیر 1393, 19:52 عصر
یه سوال
چرا برا x مشکلی پیش نمیاد

mfaridi
دوشنبه 09 تیر 1393, 19:54 عصر
گرفتم چی شد ممنون
من به این که y تو همون دور اول x صفر میشه توجه نکرده بودم

mfaridi
دوشنبه 09 تیر 1393, 20:01 عصر
اینم درستش کردم فرستادم شاید کسی باشه به همچین مشکلی برخورده باشه

function m($x,$y){
$m = $y;
for ($x; $x>=0 ;$x--){
$y=$m;
for ($y; $y<=0 ;$y++){
echo sprintf('(%d,%d)',$x,$y);
}
echo '<br>';
}
}
m(5,-5);