PDA

View Full Version : سوال درباره تعريف متغيير



naserzadeh
چهارشنبه 13 دی 1391, 17:08 عصر
سلام دوستان وقتي من ميخوام مثلا يك متغير تعريف كنم به اين صورت

int sum=0;
هيچ مشكلي نيست ولي وقتي من ميخوام تعريف كنم

int sum;
برنامه گير ميده ميگه حتما بايد متغير sum يك مقدار داشته باشه در صورتيكه روي بعضي از سيستم هاي دانشگاه من ديدم به روش دوم تعريف ميكردم هيچ مشكلي نبود و اينكه آيا لازم هستش وقتي يك متغير تعريف ميكنيم كه كارش اين باشه كه مجموع اعداد مثلا زوج 2 رقمي را حساب كنه بايد موقع تعريف متغير حتما يه مقدار مثلا 0 بهش بدين يا نه.....
چون من از استاد سوال كردم گفت اين كار غير ممكن هستش بايد حتما يك مقدار بهش بدي (كه گه ندي برنامه اونو با مقدار garbage پر ميكنه

aliasghar2
چهارشنبه 13 دی 1391, 20:04 عصر
سلام

فکر می کنم ربط به تنظیمات درون Visual Studio داشته باشه قبلا یک همچین چیزی در vb6 دیدم
فکر نکم تنظیمات دخیل باشه

وقتی یک متغییر در جنرال باشه میشه اون رو مقدار دهی نکرد مثل int sum;
ولی وقتی توی یک متد تعریف میشه باید اون رو مقدار دهی کنی int sum=0;

govaleshgar2
پنج شنبه 14 دی 1391, 11:27 صبح
هر متغیری باید در هنگام استفاده مقدار دهی شده باشد وگرنه کامپایلر سی شارپ پیغام خطا میدهد.
بدون شک تعریف متغیر به صورت زیر ایرادی ندارد
int sum;

این یک متغیر بدون انتساب است

حالا دو حالت پیش می آید که خط فوق مشکلی ایجاد نمیکند
یک: متغیر فوق در عمل مورد استفاده قرار نگرفته است.
int mymethod(){
int sum;
return 5;
}

دو: به متغیر قبل از استفاده شدن یک مقدار انتساب داده شده است.
int mymethod(){
int sum;
sum = 5;
return sum;
}



همچنین درمورد فیلدهای کلاس هم باید گفت که فیلدهای کلاس به طور خودکار با یک مقدار پیش فرض مقدار دهی میشوند، بنابراین مشکلی ایجاد نمیکند.

mehrdad1991h
پنج شنبه 14 دی 1391, 11:42 صبح
توضیحات کاملی داده شده فقط یکم ساده تر هم من بگم

وقتی متغیر شما کارش اینه که مجموع اعداد را حساب کنه به صورت خودکار بعد از چند مرحله بالاخره مقدار دهی میشه دیگه
یعنی اول کار شما اینجوری تعریف میکنی
int sum;
خوب الان مقداری نداره ولی یه مقدار که میری جلو تر میگی مثلا
sum = a +b;
الان مقدار دهی شد دیگه
هیچ جا هم بهت ایرادی نمیگیره تو برنامه !