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. Most gratuitous use of 'goto'

Most gratuitous use of 'goto'

Scheduled Pinned Locked Moved The Lounge
question
32 Posts 23 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.
  • C Chris Maunder

    What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

    S Offline
    S Offline
    Shog9 0
    wrote on last edited by
    #8

    Well, when i was very young, i wanted to stay up and watch TV all night, but my mom said "goto bed." I certainly felt that was inane, as well as just plain wrong. ;P

    Shog9

    I returned and saw under the sun, that the race is not to the swift, nor the battle to the strong...

    1 Reply Last reply
    0
    • C Chris Maunder

      What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

      S Offline
      S Offline
      Stefan de Zeeuw
      wrote on last edited by
      #9

      Anyone on my team who dare's using goto is fired on the spot :mad:

      B 1 Reply Last reply
      0
      • C Chris Maunder

        What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

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

        When my ex-wife said "goto he..!!!". Marc Latest AAL Article My blog Join my forum!

        1 Reply Last reply
        0
        • C Chris Maunder

          What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

          W Offline
          W Offline
          Wesner Moise
          wrote on last edited by
          #11

          A number of years ago Microsoft published the DefWndProc source code, which is what you call from your WndProc after you have processed a windows message. I believe the function was over 3000 lines of code, although I have seen such long switches in Excel functions, too, but maybe not that long. There was a label called "ICantBelieveIUsedGoto" in the function, that went from one location of the function to another location. What I don't understand is why each case could have been broken out into a separate function, thus making it easier to maintain. Oh, yes, I remember, because this was windows 3.1. Thanks, Wes

          1 Reply Last reply
          0
          • S Stefan de Zeeuw

            Anyone on my team who dare's using goto is fired on the spot :mad:

            B Offline
            B Offline
            bryce
            wrote on last edited by
            #12

            are they allowed to use "continue" and "break" ? bryce --- Publitor, making Pubmed easy. http://www.sohocode.com/publitor

            S 1 Reply Last reply
            0
            • B bryce

              are they allowed to use "continue" and "break" ? bryce --- Publitor, making Pubmed easy. http://www.sohocode.com/publitor

              S Offline
              S Offline
              Stefan de Zeeuw
              wrote on last edited by
              #13

              I have been programming for 20+ years and never ever found any use for continue or break (except off course break in a switch statement), so to answer your question, no, they cannot. The same goes for the return statement. There can be only 1 entry point for a function and only 1 exit point. We always use a local var (result) to set the return value of a function. Using statements like goto, continue, break and return (the latter used in the wrong place) leads too often to "spaghetti code" IMHO.

              B J J C P 6 Replies Last reply
              0
              • S Stefan de Zeeuw

                I have been programming for 20+ years and never ever found any use for continue or break (except off course break in a switch statement), so to answer your question, no, they cannot. The same goes for the return statement. There can be only 1 entry point for a function and only 1 exit point. We always use a local var (result) to set the return value of a function. Using statements like goto, continue, break and return (the latter used in the wrong place) leads too often to "spaghetti code" IMHO.

                B Offline
                B Offline
                bryce
                wrote on last edited by
                #14

                as long as you're consistant :) i've heard people moan about the use of "goto" but they'll happily use break and continue... bit oxymoronic if you ask me :) Bryce --- Publitor, making Pubmed easy. http://www.sohocode.com/publitor

                K 1 Reply Last reply
                0
                • S Stefan de Zeeuw

                  I have been programming for 20+ years and never ever found any use for continue or break (except off course break in a switch statement), so to answer your question, no, they cannot. The same goes for the return statement. There can be only 1 entry point for a function and only 1 exit point. We always use a local var (result) to set the return value of a function. Using statements like goto, continue, break and return (the latter used in the wrong place) leads too often to "spaghetti code" IMHO.

                  J Offline
                  J Offline
                  John M Drescher
                  wrote on last edited by
                  #15

                  I do use continue and break probably 1 time in every 10K lines of code I write. The multiple returns probably 1 in every 2K lines. I have not used a goto in several years so the ratio will probably be like 1 in every 250K lines I write... John

                  1 Reply Last reply
                  0
                  • S Stefan de Zeeuw

                    I have been programming for 20+ years and never ever found any use for continue or break (except off course break in a switch statement), so to answer your question, no, they cannot. The same goes for the return statement. There can be only 1 entry point for a function and only 1 exit point. We always use a local var (result) to set the return value of a function. Using statements like goto, continue, break and return (the latter used in the wrong place) leads too often to "spaghetti code" IMHO.

                    J Offline
                    J Offline
                    J Dunlap
                    wrote on last edited by
                    #16

                    There are definitely times when using continue, break, and return is actually better than not doing so. But when you find yourself needing to do it, it's important to ask yourself if there is a better way - breaking the function up into multiple functions, etc. If you say absolutely no gotos/continues/etc, occasionally you'll run into a place where in order to go by your rules you'll have to produce code that's more like 'spaghetti code' than if you allowed its use. * Believe me - I've seen this before (not very often, though). *Most of the cases were in complex string parsing functions.

                    "Blessed are the peacemakers, for they shall be called sons of God." - Jesus
                    "You must be the change you wish to see in the world." - Mahatma Gandhi

                    J 1 Reply Last reply
                    0
                    • J J Dunlap

                      There are definitely times when using continue, break, and return is actually better than not doing so. But when you find yourself needing to do it, it's important to ask yourself if there is a better way - breaking the function up into multiple functions, etc. If you say absolutely no gotos/continues/etc, occasionally you'll run into a place where in order to go by your rules you'll have to produce code that's more like 'spaghetti code' than if you allowed its use. * Believe me - I've seen this before (not very often, though). *Most of the cases were in complex string parsing functions.

                      "Blessed are the peacemakers, for they shall be called sons of God." - Jesus
                      "You must be the change you wish to see in the world." - Mahatma Gandhi

                      J Offline
                      J Offline
                      John M Drescher
                      wrote on last edited by
                      #17

                      jdunlap wrote: If you say absolutely no gotos/continues/etc, occasionally you'll run into a place where in order to go by your rules you'll have to produce code that's more like 'spaghetti code' than if you allowed its use. * Believe me - I've seen this before (not very often, though). These are the cases that I would use it. John

                      1 Reply Last reply
                      0
                      • C Chris Maunder

                        What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

                        C Offline
                        C Offline
                        ColinDavies
                        wrote on last edited by
                        #18

                        I for one actually don't know how to use 'goto' Nor do I understand why it is used. Regardz Colin J Davies

                        *** WARNING *
                        This could be addictive
                        **The minion's version of "Catch :bob: "

                        It's a real shame that people as stupid as you can work out how to use a computer. said by Christian Graus in the Soapbox

                        1 Reply Last reply
                        0
                        • S Stefan de Zeeuw

                          I have been programming for 20+ years and never ever found any use for continue or break (except off course break in a switch statement), so to answer your question, no, they cannot. The same goes for the return statement. There can be only 1 entry point for a function and only 1 exit point. We always use a local var (result) to set the return value of a function. Using statements like goto, continue, break and return (the latter used in the wrong place) leads too often to "spaghetti code" IMHO.

                          C Offline
                          C Offline
                          ColinDavies
                          wrote on last edited by
                          #19

                          AgedToPerfection wrote: (except off course break in a switch statement), I won't allow anyone to use sloppy switch statements in my projects. So I can't see the point of having a break at all. Regardz Colin J Davies

                          *** WARNING *
                          This could be addictive
                          **The minion's version of "Catch :bob: "

                          It's a real shame that people as stupid as you can work out how to use a computer. said by Christian Graus in the Soapbox

                          1 Reply Last reply
                          0
                          • C Chris Maunder

                            What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

                            J Offline
                            J Offline
                            Jack Puppy
                            wrote on last edited by
                            #20

                            here: TRACE(_T("I love Code Project and me! hehe haha\n")); goto here; I think the only time I've ever used goto was for "cleanup" purposes within a function. I do remember coming across a Microsoft VC++ sample that used goto - if I'm not mistaken it was one of the multimedia samples.

                            My 20 favorite films:
                            http://www.ymdb.com/user_top20_view.asp?usersid=8912

                            1 Reply Last reply
                            0
                            • T Tim Ranker

                              I have come across quite a few programmers that don't know about continue.

                              F Offline
                              F Offline
                              Frank Olorin Rizzi
                              wrote on last edited by
                              #21

                              Tim Ranker wrote: I have come across quite a few programmers that don't know about continue. ..ehr... I continue to run into gotos... ...(double)ehr... F.O.R.

                              1 Reply Last reply
                              0
                              • C Chris Maunder

                                What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

                                F Offline
                                F Offline
                                Frank Olorin Rizzi
                                wrote on last edited by
                                #22

                                ANd now, for something completely different... I am currently contemplating sticking a *bunch* of gotos in my next component. It's C, it's an authentication component, and therefore its logic is something like: IF (bad user id) { error=BAD_ID; skip the rest except the last piece; } IF (bad PSW) { error=BAD_PSW; skip the rest except the last piece; } ... last piece: record to log file/DB what happened; return Success/Failure So.. a *big bunch* of nested if's, or a *big bunch* of if-else's, or a *big bunch* of gotos Aside, if no-one notices, I'm sure tempteds to use the gotos just 'cause ! I'd stop only if it would lead to the problems I hit in Assembly, when the label is too far, but I have never seen that problem in C/C++. Geee... they gave use a goto statement... let's use when appropriate ! F.O.R.

                                1 Reply Last reply
                                0
                                • A Alexander M

                                  wasnt this a non-coding forum!? :cool: Don't try it, just do it! ;-)

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

                                  c'mon, it's the Maunder. He makes the rules, he breaks the rules.


                                  "Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
                                  sighist | Agile Programming | doxygen

                                  1 Reply Last reply
                                  0
                                  • C Chris Maunder

                                    What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

                                    K Offline
                                    K Offline
                                    Kastellanos Nikos
                                    wrote on last edited by
                                    #24

                                    Every instance of goto is a mistage! Exception: in asm you have to move from one place to other but there the instruction is called code>jmp, to distinguise it from goto found at hi-level languages! (conclusion: goto is an instruction which you can avoid under every circumstanced) - - - - - - - - - - - - - - - - - - Memory leaks is the price we pay \0 01234567890123456789012345678901234

                                    1 Reply Last reply
                                    0
                                    • C Chris Maunder

                                      What's the most gratuitous, inane, innappropriate or just plain wrong use of the goto keyword you've seen? cheers, Chris Maunder

                                      I Offline
                                      I Offline
                                      Ian Darling
                                      wrote on last edited by
                                      #25

                                      I think that ""goto considered harmful" considered harmful" is the correct approach here. Like all programming constructs, there is an appropriate time and place for it (and that's college). Goto is unfortunate in the respect that it's easier to abuse than most, and has significantly fewer (NOT 0!) sane uses. Two notable uses I can think of are on error goto in pre .NET VB, and in some BASIC variants you could do goto i * 1000 (which was sometimes useful for menus and stuff) but I'm sure everyone will just toast me for reminding them ;p ) After all, goto is just a more general version of gosub, which required more care: 80 let ret=100 90 goto 1000 100 rem Next bit 1000 rem Do something 1010 goto ret :laugh::laugh::laugh: -- Ian Darling If I was any more loopy, I'd be infinite.

                                      1 Reply Last reply
                                      0
                                      • B bryce

                                        as long as you're consistant :) i've heard people moan about the use of "goto" but they'll happily use break and continue... bit oxymoronic if you ask me :) Bryce --- Publitor, making Pubmed easy. http://www.sohocode.com/publitor

                                        K Offline
                                        K Offline
                                        Kastellanos Nikos
                                        wrote on last edited by
                                        #26

                                        I like break and continue... :) Please, can someone explain what's so bad about them? Can you really wtite :readable: code without continue and break? - - - - - - - - - - - - - - - - - - Memory leaks is the price we pay \0 01234567890123456789012345678901234

                                        B 1 Reply Last reply
                                        0
                                        • S Stefan de Zeeuw

                                          I have been programming for 20+ years and never ever found any use for continue or break (except off course break in a switch statement), so to answer your question, no, they cannot. The same goes for the return statement. There can be only 1 entry point for a function and only 1 exit point. We always use a local var (result) to set the return value of a function. Using statements like goto, continue, break and return (the latter used in the wrong place) leads too often to "spaghetti code" IMHO.

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

                                          I'm happy I'm not on your team.


                                          "Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
                                          sighist | Agile Programming | doxygen

                                          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