Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. while (true) and for (; ; ) [modified]

while (true) and for (; ; ) [modified]

Scheduled Pinned Locked Moved The Lounge
hostingcloudquestion
76 Posts 48 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W wizardzz

    What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

    "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

    modified on Thursday, March 10, 2011 12:10 PM

    I Offline
    I Offline
    Ian Shlasko
    wrote on last edited by
    #22

    Checking my production system, it looks like I've used while (true) in six places... #1: Background thread that continuously monitors a Named Pipe #2: Background thread that periodically checks for application updates #3: Background thread that uploads trades as they're queued #4: Background thread that watches for incoming messages from the server #5: Background thread that sends heartbeats to the server #6: Background thread that handles message routing ON the server Basically, all of them are intended to run throughout the life of the application... They all have a sleep or a wait handle, but otherwise just loop continuously... It's a useful construct. Yes, I suppose I could add a global "Shutting down" condition, but it just hasn't been necessary. They catch the thread abort, clean up in the 'finally', and are designed so as not to damage anything external if the shutdown interrupts them at any point.

    Proud to have finally moved to the A-Ark. Which one are you in?
    Author of the Guardians Saga (Sci-Fi/Fantasy novels)

    1 Reply Last reply
    0
    • D Dave Parker

      Real men use "goto" :p

      C Offline
      C Offline
      Chris Maunder
      wrote on last edited by
      #23

      Beat me to it!

      cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

      1 Reply Last reply
      0
      • W wizardzz

        What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

        "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

        modified on Thursday, March 10, 2011 12:10 PM

        C Offline
        C Offline
        Chris Losinger
        wrote on last edited by
        #24

        i like em just fine, in things like state machines, where the endpoint is unknown. do{...}while(ok) is ok, too.

        image processing toolkits | batch image processing

        1 Reply Last reply
        0
        • W wizardzz

          What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

          "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

          modified on Thursday, March 10, 2011 12:10 PM

          A Offline
          A Offline
          AspDotNetDev
          wrote on last edited by
          #25

          I like to consolidate:

          for (; ; MessageBox.Show("Hello")) ;

          :rolleyes: And here's the best I could do in VB.net:

          For i As Integer = 0 To 0 Step 0
          Next

          Like somebody else mentioned, they may have their uses in background threads.

          [WikiLeaks Cablegate Cables]

          1 Reply Last reply
          0
          • N Nish Nishant

            Most compilers (managed and native) will generate the same output code for either construct. So it's more a matter of style and preference. Personally, the while(true) seems more readable and it's more obvious what it's meant to do.

            Regards, Nish


            New article available: Resetting a View Model in WPF MVVM applications without code-behind in the view My technology blog: voidnish.wordpress.com

            C Offline
            C Offline
            Christopher Duncan
            wrote on last edited by
            #26

            Nishant Sivakumar wrote:

            what it's meant to do.

            Hang the app with an endless loop? :)

            Christopher Duncan Author of The Career Programmer Watch Bad Programmer! - Premieres May, 2011

            N 1 Reply Last reply
            0
            • C Christopher Duncan

              Nishant Sivakumar wrote:

              what it's meant to do.

              Hang the app with an endless loop? :)

              Christopher Duncan Author of The Career Programmer Watch Bad Programmer! - Premieres May, 2011

              N Offline
              N Offline
              Nish Nishant
              wrote on last edited by
              #27

              Christopher Duncan wrote:

              Hang the app with an endless loop?

              Only on a single core machine :-D

              Regards, Nish


              New article available: Resetting a View Model in WPF MVVM applications without code-behind in the view My technology blog: voidnish.wordpress.com

              C P 2 Replies Last reply
              0
              • N Nish Nishant

                Christopher Duncan wrote:

                Hang the app with an endless loop?

                Only on a single core machine :-D

                Regards, Nish


                New article available: Resetting a View Model in WPF MVVM applications without code-behind in the view My technology blog: voidnish.wordpress.com

                C Offline
                C Offline
                Christopher Duncan
                wrote on last edited by
                #28

                :laugh:

                Christopher Duncan Author of The Career Programmer Watch Bad Programmer! - Premieres May, 2011

                1 Reply Last reply
                0
                • W wizardzz

                  What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

                  "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

                  modified on Thursday, March 10, 2011 12:10 PM

                  J Offline
                  J Offline
                  Jun Du
                  wrote on last edited by
                  #29

                  I don't find many situations where I must use either. Something like while(!done) gives you a control over whether and when to exit, normal or abnormal.

                  Best, Jun

                  C 1 Reply Last reply
                  0
                  • W wizardzz

                    What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

                    "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

                    modified on Thursday, March 10, 2011 12:10 PM

                    Mike HankeyM Offline
                    Mike HankeyM Offline
                    Mike Hankey
                    wrote on last edited by
                    #30

                    I use the while(true) consistently...in embedded apps. (AVR)

                    If you are cross-eyed and have dyslexia, can you read all right? http://www.hq4thmarinescomm.com[^] JaxCoder.com[^]WinHeist - Windows Electronic Inventory SysTem

                    1 Reply Last reply
                    0
                    • J Jun Du

                      I don't find many situations where I must use either. Something like while(!done) gives you a control over whether and when to exit, normal or abnormal.

                      Best, Jun

                      C Offline
                      C Offline
                      CPallini
                      wrote on last edited by
                      #31

                      Not always. In C applications, for instance, you may know in the middle of the loop that you've to exit and while you may skip the following statements with an if and then use the condition, I prefer an immediate break.

                      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                      [My articles]

                      J J 2 Replies Last reply
                      0
                      • H Henry Minute

                        I have only used them, or their equivalent in other languages, for testing something. Never in production.

                        Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.” I wouldn't let CG touch my Abacus! When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is.

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #32

                        Same here, useful but risky in the wild.

                        Join the cool kids - Come fold with us[^]

                        1 Reply Last reply
                        0
                        • W wizardzz

                          What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

                          "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

                          modified on Thursday, March 10, 2011 12:10 PM

                          W Offline
                          W Offline
                          Wendelius
                          wrote on last edited by
                          #33

                          One version I every now and then use is:

                          while (6 * 9 != 42)

                          This wouldn't cause an infinite loop since one (particular) day those will be equal :)

                          The need to optimize rises from a bad design.My articles[^]

                          1 Reply Last reply
                          0
                          • W wizardzz

                            What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

                            "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

                            modified on Thursday, March 10, 2011 12:10 PM

                            M Offline
                            M Offline
                            Member 96
                            wrote on last edited by
                            #34

                            I just used while(condition); in a unit test to test an async method for retrieving a business object. I can't imagine a use for them in production code though.


                            There is no failure only feedback

                            A 2 Replies Last reply
                            0
                            • M Member 96

                              I just used while(condition); in a unit test to test an async method for retrieving a business object. I can't imagine a use for them in production code though.


                              There is no failure only feedback

                              A Offline
                              A Offline
                              Andy Brummer
                              wrote on last edited by
                              #35

                              That's not even in the same category.

                              Curvature of the Mind now with 3D

                              1 Reply Last reply
                              0
                              • M Member 96

                                I just used while(condition); in a unit test to test an async method for retrieving a business object. I can't imagine a use for them in production code though.


                                There is no failure only feedback

                                A Offline
                                A Offline
                                Andy Brummer
                                wrote on last edited by
                                #36

                                any way, if you are targeting 4.0, check this: SpinUntil[^]

                                Curvature of the Mind now with 3D

                                M 1 Reply Last reply
                                0
                                • W wizardzz

                                  What are your views on these? How often do you use or see them and in what cases? Just curious, it's a little debate with my project's Architect. To clarify, I don't mean the preference between the 2, but the use of such loops in production.

                                  "Life should not be a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a Ride!" — Hunter S. Thompson

                                  modified on Thursday, March 10, 2011 12:10 PM

                                  D Offline
                                  D Offline
                                  Dan Neely
                                  wrote on last edited by
                                  #37

                                  X| and X|

                                  3x12=36 2x12=24 1x12=12 0x12=18

                                  1 Reply Last reply
                                  0
                                  • A Andy Brummer

                                    I think I've used while true a few times, mostly in either complicated parser code, or early on when I was learning threading. It can make sense when side effects and the loop exit criteria are so intertwined that you can't separate them easily to reduce the exit to a single boolean. However, that's a huge flag to refactor/write your code so things aren't so intertwined. If you don't have the time/flexibility to do that, then I'd choose while (true) over creating a convoluted mess of a loop body just to have a boolean value to exit on.

                                    Curvature of the Mind now with 3D

                                    D Offline
                                    D Offline
                                    Dan Neely
                                    wrote on last edited by
                                    #38

                                    By the time your code gets too noxious to write a good exit condition, it's also too noxious to easily debug without dismantling the mess first. Unless you can write bugfree codethulus on the first attempt, there's no excuse for letting it get that bad in the first place.

                                    3x12=36 2x12=24 1x12=12 0x12=18

                                    A 1 Reply Last reply
                                    0
                                    • A Andy Brummer

                                      any way, if you are targeting 4.0, check this: SpinUntil[^]

                                      Curvature of the Mind now with 3D

                                      M Offline
                                      M Offline
                                      Member 96
                                      wrote on last edited by
                                      #39

                                      I don't understand your other reply but this one is gold! Thanks for that I'm going to use it immediately.


                                      There is no failure only feedback

                                      A 1 Reply Last reply
                                      0
                                      • D Dan Neely

                                        By the time your code gets too noxious to write a good exit condition, it's also too noxious to easily debug without dismantling the mess first. Unless you can write bugfree codethulus on the first attempt, there's no excuse for letting it get that bad in the first place.

                                        3x12=36 2x12=24 1x12=12 0x12=18

                                        A Offline
                                        A Offline
                                        Andy Brummer
                                        wrote on last edited by
                                        #40

                                        Yeah, I guess I'm too used to batting cleanup and having to pick my battles.

                                        Curvature of the Mind now with 3D

                                        D 1 Reply Last reply
                                        0
                                        • M Member 96

                                          I don't understand your other reply but this one is gold! Thanks for that I'm going to use it immediately.


                                          There is no failure only feedback

                                          A Offline
                                          A Offline
                                          Andy Brummer
                                          wrote on last edited by
                                          #41

                                          All I'm saying is that while(true) { do something repeatedly } sometimes has a place in real code. The other while(checkSharedVariable) {}; is just a good way to kick up your CPU power consumption.

                                          Curvature of the Mind now with 3D

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups