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. Today, I used goto to double-break out of nested loops

Today, I used goto to double-break out of nested loops

Scheduled Pinned Locked Moved The Lounge
csharpc++phpcomquestion
35 Posts 26 Posters 0 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.
  • P Pete OHanlon

    You've heard me in the car with Mrs Yoda then. All though you're missing the "For God's sake Brake." from the end.

    I have CDO, it's OCD with the letters in the right order; just as they ruddy well should be

    Forgive your enemies - it messes with their heads

    My blog | My articles | MoXAML PowerToys | Onyx

    N Offline
    N Offline
    Nagy Vilmos
    wrote on last edited by
    #9

    So you're not Shiney Happy People then?


    Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre

    1 Reply Last reply
    0
    • P Pete OHanlon

      You've heard me in the car with Mrs Yoda then. All though you're missing the "For God's sake Brake." from the end.

      I have CDO, it's OCD with the letters in the right order; just as they ruddy well should be

      Forgive your enemies - it messes with their heads

      My blog | My articles | MoXAML PowerToys | Onyx

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

      This is why I only let my wife drive when I am drunk. My dad really lucked out, my mum is both teetotal and a non-driver.

      Every man can tell how many goats or sheep he possesses, but not how many friends.

      1 Reply Last reply
      0
      • D Dalek Dave

        I am not the only one then! :)

        ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC League Table Link CCC Link[^]

        F Offline
        F Offline
        fjdiewornncalwe
        wrote on last edited by
        #11

        He said "break" not "goto"... :)

        I wasn't, now I am, then I won't be anymore.

        1 Reply Last reply
        0
        • D Dalek Dave

          I am not the only one then! :)

          ------------------------------------ I will never again mention that I was the poster of the One Millionth Lounge Post, nor that it was complete drivel. Dalek Dave CCC League Table Link CCC Link[^]

          S Offline
          S Offline
          Slacker007
          wrote on last edited by
          #12

          Dalek Dave wrote:

          I am not the only one then!

          yes you are. :-D

          1 Reply Last reply
          0
          • D Dave Kreskowiak

            Somewhere, God killed a kitten, AND IT'S ALL YOUR FAULT! ;)

            A guide to posting questions on CodeProject[^]
            Dave Kreskowiak

            J Offline
            J Offline
            J4amieC
            wrote on last edited by
            #13

            Oh god, dont talk about killing Cats, have you not seen the hoo-har in the last 24hrs.

            F D D 3 Replies Last reply
            0
            • N Nemanja Trifunovic

              I guess I'd move the nested loops into a separate function and called return instead, but that's really goto in disguise anyway :)

              utf8-cpp

              OriginalGriffO Offline
              OriginalGriffO Offline
              OriginalGriff
              wrote on last edited by
              #14

              There are those who think a function should have a single return - I'm not one of them. I would probably do it your way - it's clearer than the "brain bounce" I get when I see goto in OO code.

              Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

              1 Reply Last reply
              0
              • P peterchen

                "and I feel fine!" (to say it with R.E.M.)

                Agh! Reality! My Archnemesis![^]
                | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                M Offline
                M Offline
                Mike Hankey
                wrote on last edited by
                #15

                ooo sorry there will be a serious reduction of man-points and you may be reduced to writing VB code in the near future.

                Artificial Intelligence is no match for Natural Stupidity. http://www.hq4thmarinescomm.com[^] My Site

                P 1 Reply Last reply
                0
                • J J4amieC

                  Oh god, dont talk about killing Cats, have you not seen the hoo-har in the last 24hrs.

                  F Offline
                  F Offline
                  fjdiewornncalwe
                  wrote on last edited by
                  #16

                  mmm, Kitten Stew. On second thought... X|

                  I wasn't, now I am, then I won't be anymore.

                  1 Reply Last reply
                  0
                  • J J4amieC

                    Oh god, dont talk about killing Cats, have you not seen the hoo-har in the last 24hrs.

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

                    Not until after the fact. Kinda annoying since it leaves me wondering if someone really freaked over the parody of the old Harry Chapin song; or if there's better trolling material out there...

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

                    1 Reply Last reply
                    0
                    • D Dave Kreskowiak

                      Somewhere, God killed a kitten, AND IT'S ALL YOUR FAULT! ;)

                      A guide to posting questions on CodeProject[^]
                      Dave Kreskowiak

                      P Offline
                      P Offline
                      peterchen
                      wrote on last edited by
                      #18

                      She had terminal cancer, and that's HIS fault.

                      Agh! Reality! My Archnemesis![^]
                      | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                      1 Reply Last reply
                      0
                      • J J4amieC

                        Oh god, dont talk about killing Cats, have you not seen the hoo-har in the last 24hrs.

                        D Offline
                        D Offline
                        Dave Kreskowiak
                        wrote on last edited by
                        #19

                        No. Have I missed soemthing?

                        A guide to posting questions on CodeProject[^]
                        Dave Kreskowiak

                        D 1 Reply Last reply
                        0
                        • J Jim Crafton

                          You're a dirty little pervert! Somewhere Edsger Dijkstra's is choking on a Raise Error statement!

                          ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                          P Offline
                          P Offline
                          peterchen
                          wrote on last edited by
                          #20

                          It's the only action he'll get tonight.

                          Agh! Reality! My Archnemesis![^]
                          | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                          1 Reply Last reply
                          0
                          • D Dave Kreskowiak

                            No. Have I missed soemthing?

                            A guide to posting questions on CodeProject[^]
                            Dave Kreskowiak

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

                            Read the thread titled disgusting in bugs/suggestions. That'll let you see everything except the actual post that triggered the flamewar.

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

                            1 Reply Last reply
                            0
                            • M Mike Hankey

                              ooo sorry there will be a serious reduction of man-points and you may be reduced to writing VB code in the near future.

                              Artificial Intelligence is no match for Natural Stupidity. http://www.hq4thmarinescomm.com[^] My Site

                              P Offline
                              P Offline
                              PIEBALDconsult
                              wrote on last edited by
                              #22

                              Mike Hankey wrote:

                              reduced to writing VB

                              Oh shiioot... is that what happened? But I swear it was in a switch! :sigh:

                              M 1 Reply Last reply
                              0
                              • N Nemanja Trifunovic

                                I guess I'd move the nested loops into a separate function and called return instead, but that's really goto in disguise anyway :)

                                utf8-cpp

                                T Offline
                                T Offline
                                Tom Chantler
                                wrote on last edited by
                                #23

                                That's what I'd have done too. You're allowed to do stuff like that! :)

                                1 Reply Last reply
                                0
                                • P peterchen

                                  "and I feel fine!" (to say it with R.E.M.)

                                  Agh! Reality! My Archnemesis![^]
                                  | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                                  F Offline
                                  F Offline
                                  Fabio Franco
                                  wrote on last edited by
                                  #24

                                  So you're the one responsible the north korean attacks today... Shame on you!

                                  1 Reply Last reply
                                  0
                                  • P PIEBALDconsult

                                    Mike Hankey wrote:

                                    reduced to writing VB

                                    Oh shiioot... is that what happened? But I swear it was in a switch! :sigh:

                                    M Offline
                                    M Offline
                                    Mike Hankey
                                    wrote on last edited by
                                    #25

                                    PIEBALDconsult wrote:

                                    Oh shiioot... is that what happened? But I swear it was in a switch!

                                    It's like wearing a pocket protector, once your caught wearing it your labeled and there's no turning back.

                                    Artificial Intelligence is no match for Natural Stupidity. http://www.hq4thmarinescomm.com[^] My Site

                                    1 Reply Last reply
                                    0
                                    • P peterchen

                                      "and I feel fine!" (to say it with R.E.M.)

                                      Agh! Reality! My Archnemesis![^]
                                      | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                                      R Offline
                                      R Offline
                                      R Erasmus
                                      wrote on last edited by
                                      #26

                                      If I had to test your software I would of raized a bug unfortunately. Its against standard. Not following a standard costs money. Might get away with this at your current job but will cost the next company alot of money... E.g. software tagged rev 1.0 unit test fix bugs... goto, 300 occurences. 300 occurences change source code, 300 source files software tagged rev 2.0 unit test 300 source files raize more bugs that was made on fixing "removal of goto's" fix bugs software tagged rev 3.0 unit test outstanding bugs deliver software amounts to $500 000, you just cost the company. have to retrench a few.:~ P.S. !please vote! A computer programmer is someone who, when told to "Go to Hell", sees the "Go to", rather than the destination, as harmful."

                                      "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                                      P 1 Reply Last reply
                                      0
                                      • R R Erasmus

                                        If I had to test your software I would of raized a bug unfortunately. Its against standard. Not following a standard costs money. Might get away with this at your current job but will cost the next company alot of money... E.g. software tagged rev 1.0 unit test fix bugs... goto, 300 occurences. 300 occurences change source code, 300 source files software tagged rev 2.0 unit test 300 source files raize more bugs that was made on fixing "removal of goto's" fix bugs software tagged rev 3.0 unit test outstanding bugs deliver software amounts to $500 000, you just cost the company. have to retrench a few.:~ P.S. !please vote! A computer programmer is someone who, when told to "Go to Hell", sees the "Go to", rather than the destination, as harmful."

                                        "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                                        P Offline
                                        P Offline
                                        peterchen
                                        wrote on last edited by
                                        #27

                                        RudolfErasmus wrote:

                                        P.S. !please vote!

                                        OK, I voted a 3 ;) If the coding standard was "goto is prohibited", I'd follow that. Here, the disgust of goto is big enough that we have about a dozen in over a million LOC (hundreds in 3rd party code, though...) Regarding goto in general: it's a "jump forward", wich does not increase complexity. The typical solutions would be: (a) isolate the inner loop and "hide" the goto behind a early return (if permitted by standards, but requiring single exit makes no sense in C++ anymore). (b) introduce a flag that "bumps" a second break. Now, the first solution is ok to comply with a coding standard, but is complicated if the two loops need a lot of context from the calling function. Even if not, the code compexity is increased, the function needs a contract and additional error chhecking. The second solution increases complexity as well, and makes the code harder to reason about.

                                        Agh! Reality! My Archnemesis![^]
                                        | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                                        R R 2 Replies Last reply
                                        0
                                        • P peterchen

                                          RudolfErasmus wrote:

                                          P.S. !please vote!

                                          OK, I voted a 3 ;) If the coding standard was "goto is prohibited", I'd follow that. Here, the disgust of goto is big enough that we have about a dozen in over a million LOC (hundreds in 3rd party code, though...) Regarding goto in general: it's a "jump forward", wich does not increase complexity. The typical solutions would be: (a) isolate the inner loop and "hide" the goto behind a early return (if permitted by standards, but requiring single exit makes no sense in C++ anymore). (b) introduce a flag that "bumps" a second break. Now, the first solution is ok to comply with a coding standard, but is complicated if the two loops need a lot of context from the calling function. Even if not, the code compexity is increased, the function needs a contract and additional error chhecking. The second solution increases complexity as well, and makes the code harder to reason about.

                                          Agh! Reality! My Archnemesis![^]
                                          | FoldWithUs! | sighist | WhoIncludes - Analyzing C++ include file hierarchy

                                          R Offline
                                          R Offline
                                          R Erasmus
                                          wrote on last edited by
                                          #28

                                          Yeah it depends what you're coding standard says. I do software testing in c(structured programming). Statement such as goto and continue is unstructured. Breaking the code up into smaller functions can help with complexity (if you care about the complexity rating, otherwise complexity in general).:thumbsup:

                                          "Program testing can be used to show the presence of bugs, but never to show their absence." << please vote!! >>

                                          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