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. I just used a goto!

I just used a goto!

Scheduled Pinned Locked Moved The Lounge
csharpcom
66 Posts 45 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.
  • S Super Lloyd

    I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

    A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

    G Offline
    G Offline
    gardnerp
    wrote on last edited by
    #22

    Obligatory XKCD[^] GOTO is perfectly fine in some scenarios. It's a language feature not a bug. I have used maybe 4 over the past 15 years. So not common, but absolutely has its place.

    1 Reply Last reply
    0
    • S Super Lloyd

      I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

      A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

      M Offline
      M Offline
      Munchies_Matt
      wrote on last edited by
      #23

      Why not use them? Sometimes they make sense. Spaghetti code is spaghetti code regardless whether it uses classes, is structured, or just plain crap.

      G 1 Reply Last reply
      0
      • M Munchies_Matt

        Why not use them? Sometimes they make sense. Spaghetti code is spaghetti code regardless whether it uses classes, is structured, or just plain crap.

        G Offline
        G Offline
        glennPattonWork3
        wrote on last edited by
        #24

        Coming from a embedded back ground, GOTO maps directly to JMP! write assembly without JMP. Like you said I battled with object oriented code that is c*ap but well structured. I like anything don't blame the tools, blame the tool using the tool! ;)

        M 1 Reply Last reply
        0
        • S Super Lloyd

          I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

          A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

          F Offline
          F Offline
          Forogar
          wrote on last edited by
          #25

          I once used a "computed goto" - it was in FORTRAN where this kind of thing used to be expected! X| GOTO is my go-to command I go to when I need a goto.

          - I would love to change the world, but they won’t give me the source code.

          1 Reply Last reply
          0
          • G glennPattonWork3

            Coming from a embedded back ground, GOTO maps directly to JMP! write assembly without JMP. Like you said I battled with object oriented code that is c*ap but well structured. I like anything don't blame the tools, blame the tool using the tool! ;)

            M Offline
            M Offline
            Munchies_Matt
            wrote on last edited by
            #26

            I have seen some terrible C++ code, the worst was a child of a parent, instantiated as the parent. SO child * myclass = new parent. WTF! Which frigging function is going to get called, the base class or the overridden one! I wanted to punch the person who wrote that.

            1 Reply Last reply
            0
            • S Super Lloyd

              I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

              A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

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

              Find In Files / Current Project / "goto" Matching lines: 1254 it's common in C, as it's the cleanest way to handle error conditions.

              1 Reply Last reply
              0
              • S swampwiz

                I think the only time that exception handling should be used is when the current code section does not have any control over the code that is throwing the exception - i.e., it is preferable to check and control something than to rely on an exception that simply does a goto the catch branch.

                R Offline
                R Offline
                Rick York
                wrote on last edited by
                #28

                I can agree with that. I had the misfortune of having to deal with an automation systems framework that was essentially a state machine library and it changed states by throwing an exception. I thought it was incredibly stupid. This framework was spreading throughout one division of a customer until someone finally pulled their head out and asked what is this pile you have subjected us to? This particular customer joined my very short list of the worst ones I have ever dealt with and I refuse to buy any of their products to this day.

                "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                1 Reply Last reply
                0
                • S Super Lloyd

                  I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                  A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                  N Offline
                  N Offline
                  Nelek
                  wrote on last edited by
                  #29

                  In high level languages... Ok, maybe you have more possibilities and you should avoid using goto's But try to programm in Assembly, in PLC LAD or other similar "low" level languages without it. It is like many other things. Use it wisely and there would be no problems. Abuse or misuse it... and you will burn in hell (or you will be damned and sent to hell by the people who inherit your code)

                  M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.

                  1 Reply Last reply
                  0
                  • D DRHuff

                    To avoid this you can put the entire code block in a try. Put the catch at the go to label and throw an exception where you call the goto. Because that’s different somehow!

                    Socialism is the Axe Body Spray of political ideologies: It never does what it claims to do, but people too young to know better keep buying it anyway. (Glenn Reynolds)

                    N Offline
                    N Offline
                    Nelek
                    wrote on last edited by
                    #30

                    And what happens when the language you are programing in offers no try-catch-throw?

                    M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.

                    1 Reply Last reply
                    0
                    • S swampwiz

                      I think the only time that exception handling should be used is when the current code section does not have any control over the code that is throwing the exception - i.e., it is preferable to check and control something than to rely on an exception that simply does a goto the catch branch.

                      R Offline
                      R Offline
                      raddevus
                      wrote on last edited by
                      #31

                      agreed. I'm thinking of calls to another library where it throws a specific exception after being configured properly. In that case all inputs are set to valid values but then something happens which causes the exception - network not available or something.

                      1 Reply Last reply
                      0
                      • S Super Lloyd

                        I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                        A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

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

                        while ( true ) { ... break ... }

                        C 1 Reply Last reply
                        0
                        • P PIEBALDconsult

                          while ( true ) { ... break ... }

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

                          also

                          for (;;) { break; }

                          do { break; } while(0);

                          that's just pretending. everyone knows that break is a goto. own it!

                          K 1 Reply Last reply
                          0
                          • S Super Lloyd

                            I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                            A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                            D Offline
                            D Offline
                            Dr Walt Fair PE
                            wrote on last edited by
                            #34

                            Everytime, I thought I needed a goto, I found I could just put a return inthe middle of a loop. That's a more better way to make things sucky.

                            CQ de W5ALT

                            Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software

                            1 Reply Last reply
                            0
                            • S Super Lloyd

                              I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                              A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

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

                              Gotos are fine. Like, "I will be back in 30 minutes. I have to GOTO the store." I have to GOTO the baseball game. :thumbsup: :laugh:

                              D 1 Reply Last reply
                              0
                              • S Super Lloyd

                                I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                                A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                                M Offline
                                M Offline
                                Marc Clifton
                                wrote on last edited by
                                #36

                                1. Create a workflow manager using generics, interfaces, class abstraction, enums for state and continuation. 2. Break up your code into small workflow steps. 3. On each step, check for termination. 4. Or to get really fancy, return a code that says what step in the workflow to skip to. 5. If you really want to be cool, allow for async workflow steps! ;)

                                Latest Article - A 4-Stack rPI Cluster with WiFi-Ethernet Bridging Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                                B 1 Reply Last reply
                                0
                                • S Slacker007

                                  Gotos are fine. Like, "I will be back in 30 minutes. I have to GOTO the store." I have to GOTO the baseball game. :thumbsup: :laugh:

                                  D Offline
                                  D Offline
                                  Daniel Pfeffer
                                  wrote on last edited by
                                  #37

                                  Slacker007 wrote:

                                  I have to GOTO the store

                                  Except that's really a function call - you do intend to RETURN from the grocery store, don't you?

                                  Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                                  F 1 Reply Last reply
                                  0
                                  • S Super Lloyd

                                    I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                                    A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                                    D Offline
                                    D Offline
                                    Daniel Pfeffer
                                    wrote on last edited by
                                    #38

                                    :omg: :wtf: Nuke the location in which the GOTO was used, sow the glass crater with salt, and plow it in. Then scatter biological and chemical agents all around the area, making it inaccessible for 10,000 years!

                                    Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                                    1 Reply Last reply
                                    0
                                    • S Super Lloyd

                                      I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                                      A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                                      M Offline
                                      M Offline
                                      markrlondon
                                      wrote on last edited by
                                      #39

                                      It4 seems to me that in a language with no local functions or lacking in structured error handling, gotos have a useful place. A limited place, but a place all the same.

                                      1 Reply Last reply
                                      0
                                      • D DRHuff

                                        To avoid this you can put the entire code block in a try. Put the catch at the go to label and throw an exception where you call the goto. Because that’s different somehow!

                                        Socialism is the Axe Body Spray of political ideologies: It never does what it claims to do, but people too young to know better keep buying it anyway. (Glenn Reynolds)

                                        D Offline
                                        D Offline
                                        David ONeil
                                        wrote on last edited by
                                        #40

                                        DRHuff wrote:

                                        Because that’s different somehow!

                                        Yes! Stack unwinding is SO MUCH MORE EFFICIENT than a 'jmp'! :laugh: :rolleyes: :rolleyes: :rolleyes: :laugh:

                                        The forgotten roots of science | C++ Programming | DWinLib

                                        1 Reply Last reply
                                        0
                                        • S Super Lloyd

                                          I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....

                                          A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                                          M Offline
                                          M Offline
                                          Mark_Wallace
                                          wrote on last edited by
                                          #41

                                          I use goto all the time. Every loop and conditional expression you use calls it to their hearts' content; there's no avoiding it.

                                          I wanna be a eunuchs developer! Pass me a bread knife!

                                          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