مشاهده نسخه کامل
: سوال در مورد دستور شرطي if
سلام
من برنامه اي نوشتم كه در اون از دستورات if بصورت تودرتو و متوالي استفاده شده ولي
اگر شرط اول(دستور if اول) درست ارزيابي بشه اونو بدون هيچ مانعي اجرا مي كنه ولي اگه يكي از دو شرط ديگه درست باشه اصلا دستورات داخل اونها رو اجرا نمي كنه مثل اينكه اصلا اين دو شرط آخر وجود ندارن آيا كسي مي دونه دليل اين كار چيه؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
sin2x=2sinxcosx
01-12-2008, 22:56
بنده متوجه منظورتون نشدم . شما چه انتظاري از برنامه دارين ؟
يا اگه مي تونين اون برنامه رو بگين که چيه ، تا شايد بشه بهتر راهنمايي کرد .
خب اگه شرط if اول درست باشه ميره داخلش و اگه تو اون هم يه دستور if ديگه باشه اون رو هم تست ميگه و اگه True باشه ميره دستورات اون رو اجرا ميکنه . بقيه اش هم بستگي به اين داره که بلوک ها رو کجا ببندين تا برنامه بتونه else هر کدوم رو تشخيص بده .
bagher_mo68
01-12-2008, 22:56
من دقیقاً منظورتو نفهمیدم ...
اما وقتی از دستور if و بعد از اون else if استفاده میکنی , در صورت درست بودن if اول دستور else بعد چک نمیشه ... اگه بخوای چک شه باید else رو برداری و دوباره از دستور if استفاده کنی
اگه منظورت چیزه دیگه ای بود برنامتو بزار شاید فهمیدم مشکلت کجاست !
Shahab_H
01-12-2008, 23:07
من فکر کنم منظور دوستمون همونیه که تو پست قبلیه من جواب داده شده!
برای این کار باید از if تنها استفاده شه نه else if
من از شما ممنونم و اين كارهايي كه گفتيد انجام دادم ولي مشكلم حل نشد سوالمو واضح تر مي گم
مثلا در كد زير
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه دستور if اولي درست ارزيابي بشه ميره داخلش و دستورهايي كه توش هست رو انجام ميده ولي مشكل اينجاست كه اگه دستور if اول نادرست و يكي از دو دستور if ديگه درست باشه به داخل اونا نمي ره و در نهايت هيچ كاري انجام نميشه و نمي فهمم مشكلش از كجاست/ مثل اين ميمونه كه اصلا اون دو تا دستور if ديگه با اطلاعاتشون در كد نوشته نشده باشن
ممنون ميشم اگه راهنماييم كنيد.
Shahab_H
02-12-2008, 16:43
خب دوست عزیز مشخصه!
اگر if اول درست باشه بقیه ی دستور ها چون قبل از if یک else هم دارن اجرا نمیشن!
اگر شرط if اول غلط باشه میره سراغ دومی!اگر دست باشه بقیه دیگه اجرا نمیشن چون else دارن و در صورتی اجرا میشن که قبلی غلط باشه! و به همین ترتیب
بهتره شما موضوع برنامتون رو بگین تا ما بهتر بتونیم راهنمایی کنیم!
bagher_mo68
02-12-2008, 18:56
خوب این همونی شد که گفته بودیم !!
وقتی شما بعد از if و else if میزاری یعنی میگی اگه اون اولی نشد این ! یعنی اگه اولی درست باشه بقیش چک نمیشه
میتونی برنامتو بزاری اگه درست نشد شاید بهتر بتونیم راهنمایی کنیم
خب دوست عزیز مشخصه!
اگر if اول درست باشه بقیه ی دستور ها چون قبل از if یک else هم دارن اجرا نمیشن!
!
خوب اينو كه هر كسي مي دونه
منظور من اين بود اگه در كدي كه تو پست قبل گذاشتم به دستورهاي if پشت سر شماره ي 1 و 2 و 3 بديم if هاي 2 و 3 هيچ ويقت اجرا نميشن و فقط if اول(1) اجرا ميشه (البته اگر درست باشه)
:42::42:
سلام
اگه کدی که خودت تست میکنی رو بزاری و کامپایلری که استفاده میکنی بگی بهتر میشه نظر داد
بعضی کامپایلر ها یکسری بهینه سازی های بخصوص دارن که بعضی مواقع این مشکلات رو بوجود میاره
Shahab_H
02-12-2008, 20:34
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین 1 نمونه ی ساده از این ساختار!
اینارو تو کامپایلرتون اجرا کنین اگه درست کار کرد که نشون میده کدهاتون درست نیست
اگر کدها رو بذارین شاید بتونیم کمک کنید
اگر درست اجرا نشد یعنی ایراد از کامپایلرتونه!که احتمالش خیلی کمه:11:
اینم 1 نمونه از خروجی این برنامه
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
sin2x=2sinxcosx
02-12-2008, 21:47
دوست عزيز اصلا مشلکتون مفهوم نيست . يعني چي if اول اجرا ميشه ؟ بعد if هاي 2 و 3 هيچ وقت جرا نميشه ؟ کدوم ها رو ميگين 1 , 2 , 3 ؟
مسئله خيلي ساده ايه . ولي شما با سوال هاي پيچيده دارين خيلي پيچيده اش مي کنين .
از همه ي دوستاني كه كمك كردن تا مشكلم حل بشه ممنونم:11:
مشكلم حل شد:10:
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.