ورود

View Full Version : میشه اینتجر رو بولین در نظر گرفت



Payman62
جمعه 17 شهریور 1385, 07:19 صبح
سلام.
2 سوال ساده ولی اصولی و پایه ای دارم.
حتما میدونید که در ویبی 0 فالسه و غیر 0 ترو. من هنگام کدنویسی اگر بخوام یه اینتجر رو تو یه شرط به کار ببرم میگم مثلا if a then در حالی که a اینتجره نه بولین. از یکی شنیدم این روش کدنویسی اشتباهه. میگفت سیستم عامل باید بیاد پشت پرده این اینتجر رو به بولین تبدیل کنه و مقایسه رو انجام بده و میگفت به همین دلیل ممکنه رو بعضی سخت افزار ها برنامه با مشکل روبرو شه. میگفت طریقه صحیح نوشتن کد اینه if a <> 0 then
مثلا چنین کدی اشکال داره؟
if Not a Then به جای if a=0 then در حالی که a اینتجر یا لانگه.
حالا 2 تا سوال دارم.
اول اینکه اون شخص درست میگه یا نه منظورم اینه که ممکنه با تغییر سخت افزار برنامه جواب نده.
دوم این که به نظر شما کدوم روش کد نویسی حرفه ای تر و صحیح تر است.

hbi
جمعه 17 شهریور 1385, 11:43 صبح
در کتابی که من دارم روش شمارا درست در نظر گرفته و او را اصولی میدونه

titbasoft
جمعه 17 شهریور 1385, 12:30 عصر
در وی بی 1- مقدار True و 0 مقدار False است.

Payman62
جمعه 17 شهریور 1385, 14:51 عصر
در وی بی 1- مقدار True و 0 مقدار False است، در غیر این صورت ها تضمینی وجود ندارد.
سلام.
منظور شما چیه از این که میفرمایید تضمینی وجود ندارد. یعنی ممکنه رو سخت افزار های دیگه کار نکنه. ولی عدد غیر صفر و غیر یک مثل 34 یا 23- هم ترو در نظر گرفته میشه.

titbasoft
جمعه 17 شهریور 1385, 15:52 عصر
اون چیزی که Document شده اینه:

When you use the CType or CBool conversion keywords to convert numeric data types to Boolean, 0 becomes False and all other values become True. When you convert Boolean values to numeric types using the conversion keywords, False becomes 0 and True becomes -1.
ظاهرا من اشتباه می کردم.
برای اطلاعات بیشتر به اینجا (http://msdn2.microsoft.com/en-us/library/ae382yt8.aspx)مراجعه کنید.

Payman62
جمعه 17 شهریور 1385, 20:53 عصر
سلام.
مشکل من سر تشخیص ترو بودن یا فالس بودن اعداد نیست.
میگم اصلا درسته بگم if a then وقتی a اینتجره.

titbasoft
جمعه 17 شهریور 1385, 21:47 عصر
با در نظر گرفتن شرایط فوق بله، چون عدد شما به طور ضمنی (implicit) به بولین Cast خواهد شد. به همین علت لینک بالا رو گذاشتم.