View Full Version : سوال: چرا در این حلقه while خروجی 26 می شود؟
complexcoding
چهارشنبه 27 اردیبهشت 1391, 22:54 عصر
دوستان سلام چرا در این حلقه while خروجی 26 می شود؟
i=0 , s= 1;
while(i++<6)
s+=i++*2;
s+=i;
این یکی حلقه رو هم همینطور نمی دونم چرا s=15 می شه؟
for(i=1,s=0;i<10;i+=4)
s+=i;
پیشاپیش خیلی ممنون از راهنماییتون ولی یه جور باشه بفهمیما گنگ توضیح ندین فقط خواهشا.
soorena
چهارشنبه 27 اردیبهشت 1391, 23:42 عصر
سلام
برنامه اول رو برات ساده تر کردم که بدون توضیح خودت بفهمی. برنامه دوم هم که اگه رو کاغذ خودت پیاده کنی میفهمی که چقدر سادست.
i=0 , s=1;
while((i=i+1)<6){
s=s+((i)*2);
i++;
}
s+=i;
}
complexcoding
پنج شنبه 28 اردیبهشت 1391, 00:00 صبح
حرف شما آقای soorena درست ولی آخه علامت ++ بعد i مگه نیومده پس اول ضرب می کنیم بعدش یک واحد اضافه می کنیم دیگه؟؟؟ اگه یه واحد اضافه کنیم قبل از ضرب پس ++i با i++ چه فرقی داره؟!؟!؟!
vistacali
پنج شنبه 28 اردیبهشت 1391, 00:22 صبح
دوست گرامی اول i=0 , s=1 میاد سر حلقه while شرط چک میشه همینطو که گفته شده i=1 و کوچکتر از 6 هست حلقه اجرا میشود نتیجه خط اول بعد حلقه که s است میشود 3 و در خط بعد i=2 و بعد میره بازم سراغ حلقه i=3 شرط کوچکتر برقرار است خط بعد حاصل میشود 9 و باز هم به iیک مقدار اضاف میشود i=4و بازم میره سر حلقه بازم بازم i=i+1 که میشه 5 شرط برقرار است خط بعد حلقه s=19 یک واحد به i اضاف میشه i=6 میاد سر حلقه i=i+1 رو انجام میده i=7 شرط چک میشه i بزرگتر از 6است از حلقه میاد بیرون و 19+7 میکنه و در s قرار میدهد حالا کجاش مبهم هست بگید بازم توضیح بدم
ارمین نصیری
پنج شنبه 28 اردیبهشت 1391, 00:35 صبح
سلام دوست عزیز این حالت ها تقدم بشتری دار ++ یا -- به سایر عملگر ها
soorena
پنج شنبه 28 اردیبهشت 1391, 01:46 صبح
سلام
ببین عزیزم ++i یعنی اینکه اول عملیاتی که i در اون دخیله انجام بشه بعدش به i یکی اضافه بشه.ولی i++ یعنی اینکه قبل از اجرای هر عملیاتی یکی به i اضافه کن بد عملیات رو انجام بده.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.