اطلاعیه

Collapse
No announcement yet.

خارج شدن از دو حلقه while درون هم

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    خارج شدن از دو حلقه while درون هم

    سلام دوستان من دو حلقه While درون هم دارم میخوام همزمان هم از دومی و اولی خارج شم

    چطور باید این کارو کنم ؟
    I'm going to
    RWTH Aachen
    University

    #2
    پاسخ : خارج شدن از دو حلقه while درون هم

    تا جای ممکن یا باید کدتون رو بهینه کنید به نحوی یا از دستور goto استفاده کنید و به یه لیبل در خارج از حلقه ها اشاره کنید

    دیدگاه


      #3
      پاسخ : خارج شدن از دو حلقه while درون هم

      نوشته اصلی توسط voyager2020 نمایش پست ها
      تا جای ممکن یا باید کدتون رو بهینه کنید به نحوی یا از دستور goto استفاده کنید و به یه لیبل در خارج از حلقه ها اشاره کنید
      البته دستور goto خیلی حرفه ای نیست و بیشتر هنگام گیر افتادن اسفاده میشه. بهینه سازی کدها و تغییر الگوریتم همیشه راه بهتری هست. که voyager2020 عزیز هم همین رو اشاره کردند.

      دیدگاه


        #4
        پاسخ : خارج شدن از دو حلقه while درون هم

        خوب در اصل منظورتون این بود که نمیشه با یک دستور این کارو کرد باید با چند تا دستور این کار انجام شه ؟

        سپاس
        I'm going to
        RWTH Aachen
        University

        دیدگاه


          #5
          پاسخ : خارج شدن از دو حلقه while درون هم

          این مورد از معدود مواردی هست که استفاده از دستور goto مجاز هست!

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          راه دیگه اینه که یه شرط رو همزمان با شرط حلقه ها چک کنید ولی باید تست کنید در عمل به همان همزمانی goto هست یا نه!

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          یک راه هم دیگر هم استفاده از حلقه ها در یک متد یا تابع هست

          دیدگاه


            #6
            پاسخ : خارج شدن از دو حلقه while درون هم

            بهترین راه اینه که داخل حلقه دومی یه شرط(if) بزاری که توش دستور goto باشه
            بعد یه لیبل میزاری خارج دو تا شرط
            .
            .
            .
            علی رغم اینکه استفاده از دستور goto رو قبول ندارم ولی اینجا بهترین و به صرفه ترین راه همینه
            چون هر سیکل یه دستور اجرا میشه...ینی برای هر بار چک کردن شرط ،دو برابر زمان صرف میشه __که در شرط های زیاد ممکنه باعث خطا بشه
            مثلا برای یه التروسونیک تست کردم..کلا خطا میداد...
            من خودم اگه جای شما بودم از goto استفاده میکردم

            دیدگاه


              #7
              پاسخ : خارج شدن از دو حلقه while درون هم

              تو بسکام یه دستور به اسم exit هست ، که میتونه به هرچی پایان بده ، مثل exite do , exite for و چندتا چیز دیگه ، شما بهتر دنبال دستور exite تو زبان برنامه نویسیتون باشید،
              دستور پرش زیاد مناسب اینکارا نیست ، برنامه خوب اصلا پرش نخواهد داشت.کپسوله بودن یه تابع رو از بین میبره.
              به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
              (پيش به سوي هدف)

              دیدگاه


                #8
                پاسخ : خارج شدن از دو حلقه while درون هم

                نوشته اصلی توسط hosseinam نمایش پست ها
                تو بسکام یه دستور به اسم exit هست ، که میتونه به هرچی پایان بده ، مثل exite do , exite for و چندتا چیز دیگه ، شما بهتر دنبال دستور exite تو زبان برنامه نویسیتون باشید،
                دستور پرش زیاد مناسب اینکارا نیست ، برنامه خوب اصلا پرش نخواهد داشت.کپسوله بودن یه تابع رو از بین میبره.
                براد ر اون فقط تو بسکامه و باید کل عمرش رو دنبال exit باشه تو C سر اخرم پیداش نمی کنه
                این دستور شرط حلقه ها رو نفی می کنه و به این طریق از حلقه ها خارج میشه. می تونید برنامه رو طوری بنویسید که شرط اجرای حلقه اول در اصل اجرای حلقه دوم باشه و اگر شرط ادامه حلقه دوم لغو شد اولی هم لغو بشه و سریعا break کنه.

                فکر کنم این راه خوبی باشه. البته در صورتی که در برنامه Lable گذاشته باشید با دستور goto هم میشه اما اصلا توصیه نمیشه.
                چرا ناراحتی پاتریک!
                + امروز ی بچه دیدم سرچهارراه گل میفروخت
                - از دیدنش ناراحت شدی؟
                + نه
                پس چی ناراحتت کرده
                + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                ------------------------------------------------------------------------------------------------------
                تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                ------------------------------------------------------------------------------------------------------
                محصولات

                دیدگاه


                  #9
                  پاسخ : خارج شدن از دو حلقه while درون هم

                  واسه اینکار راه های زیادی هست که بسته به کامپایلر میتونید استفاده کنید
                  اگه من خودم باشم بی درنگ دستور goto رو انتخاب می کنم (بخاطر بهینه بودنش)
                  نگران استفاده از این دستور نباشید اگه این بهترین گزینه باشه. دو دسته برنامه نویس ها از این دستور زیاد استفاده میکنن
                  برنامه نویس های ناشی - برنامه نویس های عملگرا. (بستگی داره که جز کدوم دسته باشید)
                  اگه برای میکروکنترلر برنامه می نویسید نیاز نیست زیاد حساس باشید - توی نهایت چند هزار خط برنامه این زیاد به چشم نمیاد

                  روش دیگه که بخواید goto بکار نبرید اینه که شرط حلقه بیرونی رو نادرست کنید و بعدش break کنید
                  کد PHP:
                  while(o_flag){
                      while(
                  i_flag){
                          if(
                  condition){
                              
                  o_flag false;
                              break;
                          }
                      }

                  روش دیگه اینکه میتونید همه ی این حلقه ها رو توی یه تابع بنویسید و از تابع return کنید (اگه نگران سرعت هستید inline تعریف کنید)

                  روش های دیگه ای هم هست که کامپایلر های جدیدتر پشتیبانی میکنن (مثل lambda یا مثلا ایجاد استثنا)
                  که البته هزینه اجرای بیشتری دارن و بهتره پرهیز بشه - اگه لازم شد میگم
                  If the wind will not serve, take to the oars

                  دیدگاه


                    #10
                    پاسخ : خارج شدن از دو حلقه while درون هم

                    نوشته اصلی توسط سوران آراسته نمایش پست ها
                    براد ر اون فقط تو بسکامه و باید کل عمرش رو دنبال exit باشه تو C سر اخرم پیداش نمی کنه
                    این دستور شرط حلقه ها رو نفی می کنه و به این طریق از حلقه ها خارج میشه. می تونید برنامه رو طوری بنویسید که شرط اجرای حلقه اول در اصل اجرای حلقه دوم باشه و اگر شرط ادامه حلقه دوم لغو شد اولی هم لغو بشه و سریعا break کنه.

                    فکر کنم این راه خوبی باشه. البته در صورتی که در برنامه Lable گذاشته باشید با دستور goto هم میشه اما اصلا توصیه نمیشه.
                    exit تو بسکام هم همین کار رو میکنه.حالا اگه تو حلقه باشه مینویسن exit do.

                    اگه تو برنامه نویسی ها زبان ها مثل سی پلاس یا سی شارپ یا ... دقت کنید ، میبینید اصلا با دستورات پرش بیگانه ان ، یعنی اصلا سعی نمیکنن تو دتوابع از این دستورات استفاده کنن، حتما یه مشکلی داره دیگه ، تازه اگه بدون پرش برنامه بنویسید دستورات خاناتر میشه. امتحان کنید.
                    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                    (پيش به سوي هدف)

                    دیدگاه


                      #11
                      پاسخ : خارج شدن از دو حلقه while درون هم

                      الان که فکرشو میکنم باید بیخیال دو حلقه بنهیات درون هم بشم . من فقط میخواستم از یک کلید اوکی استفاده کنم اگر یک بار زد که همون اوکی در نظر گرفته شه اگر دستشو روش قرار دادن بعد از نیم ثانیه از منو خارج شه

                      الان کلا دنبال یه راه حل ساده ترم کل برنامه چند خط بیشتر نیست .

                      مرسی از همه دوستان .
                      جدیدترین ویرایش توسط Azadfalah; ۲۲:۵۳ ۱۳۹۵/۰۸/۰۷.
                      I'm going to
                      RWTH Aachen
                      University

                      دیدگاه


                        #12
                        پاسخ : خارج شدن از دو حلقه while درون هم

                        سلام دوستان دستور jum تو اسمبلی با این دستور goto فرق داره یا یکین؟
                        سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.

                        دیدگاه


                          #13
                          پاسخ : خارج شدن از دو حلقه while درون هم

                          نوشته اصلی توسط azadfalah نمایش پست ها
                          الان که فکرشو میکنم باید بیخیال دو حلقه بنهیات درون هم بشم . من فقط میخواستم از یک کلید اوکی استفاده کنم اگر یک بار زد که همون اوکی در نظر گرفته شه اگر دستشو روش قرار دادن بعد از نیم ثانیه از منو خارج شه

                          الان کلا دنبال یه راه حل ساده ترم کل برنامه چند خط بیشتر نیست .

                          مرسی از همه دوستان .
                          اینکه ساده ست.
                          برای اینکار بهتره از یه تایمر و یه وقفه استفاده کنی.
                          یا اینکه میتونی از تاخیر توی یه حلقه استفاده کنی. (تاخیر های کوتاه در نظر بگیر مثلا 10 یا 20 میلی ثانیه و تعدادش رو بشمار)

                          دلیل: ادغام دو پست برای جلوگیری از اسپم

                          نوشته اصلی توسط سید سجاد احدزاده نمایش پست ها
                          سلام دوستان دستور jum تو اسمبلی با این دستور goto فرق داره یا یکین؟
                          بله همونه
                          البته توی اسمبلی چندین نوع دستور پرش داریم
                          خیلی جالبه گاهی چند خط دستور C رو توی اسمبلی میشه با یکی دو خط نوشت
                          If the wind will not serve, take to the oars

                          دیدگاه

                          لطفا صبر کنید...
                          X