Alireza
3 سال پیش توسط Alireza مطرح شد
2 پاسخ

Postfix increment

سلام خدمت همگی دوستان
چرا خروجی کد اول با خروجی کد دوم متفاوته؟
کد اول:

$num1 = 10;
$num1 = $num1++;
print $num1;
//print 10```

کد دوم :
 تصویر


ثبت پرسش جدید
مهدی رفیعی
تخصص : توسعه دهنده نرم افزار
@mahdirafiei 3 سال پیش مطرح شد
0

سلام علیرضا جان،

این موضوع مربوط به عملگر ++ هست. داخل کد اول تو در ابتدا num1 رو برابر num1 قرار میدی و بعد ++ اجرا میشه که در اصل بی تأثیر هستش. اما اگه همین ++ رو پشت num1 قرار بدی، به این صورت:

$num1 = ++$num1;

مقدار این متغیر به ۱۱ تغییر پیدا میکنه.

امیدوارم که توضیحاتم بهت کمکی کرده باشن، اگه بازم سوالی داری میتونی با کمال میل روی همین پاسخم ریپلی کنی اما در غیر این صورت میتونی بحث و گفت و گو رو پایان بدی. 😉


AmirRoox
تخصص : برنامه نویس ساده
@amirroox 3 سال پیش مطرح شد
0

عبارت های افزایشی (++) و کاهشی (-- ) در جایگاه خیلی مهم هستند
وقتی شما متغیری ایجاد میکنید به نام

int a = 10 ;

اگر بخواید یک واحد به این متغیر اضاقه کنید به دو روش عمل میکنید :

a = a+1;
a++

وقتی شما ++ رو قبل از متغیر قرار میدید ، اول یک واحد به متغیر اضافه میشه و سپس ادامه کار
اما وقتی بعد از متغیر قرار میگیره اول کار انجام میشه و سپس به اون متغیر یک واحد اضافه میشه
به مثال زیر توجه کنید :

int a = 10;
a++; // a+1 => a=11
int b = 10;
++b; // 1+b ==> b=11
int c;
c = ++a; // ===> 1 + a(11) = 12 , c =12
int d ;
d = b++; // ====> d = b ,b+1  ====>  d=11 , b=12

شما هم در کد اولتون اول num1 رو داخل num1 ریختید (پس num1 همون مقدار اول میمونه ) سپس num1 یک واحد اضافه کردید (که در عمل کاری نمکینه ) ؛ اما

 num1++

به صورت پیشفرض یک دستور واحده و یک واحد اضافه میکند :)


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام