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. Other Discussions
  3. The Weird and The Wonderful
  4. OMG a "Goto"

OMG a "Goto"

Scheduled Pinned Locked Moved The Weird and The Wonderful
asp-netcomhelpquestion
42 Posts 21 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 like this reason as well void foobar() { // blah blah blah for(...) { // blablabla for(..) { // foo foo foo if(bar) goto end; } } end: // beep bop a loola }

    A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.

    A Offline
    A Offline
    adamsappel
    wrote on last edited by
    #32

    Even Java has the "goto" similarity where you can "continue" to a label.

    1 Reply Last reply
    0
    • S Super Lloyd

      I like this reason as well void foobar() { // blah blah blah for(...) { // blablabla for(..) { // foo foo foo if(bar) goto end; } } end: // beep bop a loola }

      A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.

      T Offline
      T Offline
      tobster
      wrote on last edited by
      #33

      Use a break statement instead!

      S 1 Reply Last reply
      0
      • C CARPETBURNER

        protected void Page_Load(object sender, EventArgs e)
        {
        string str = "Even exception occur again in catch block still finally block is Working";
        try
        {
        throw new IndexOutOfRangeException();
        }
        catch
        {
        goto Hello;
        throw new IndexOutOfRangeException();

        }
        finally
        {
        Response.Redirect("Error.aspx?str="+ str);
        }
        Hello:
        Response.Write("Finally Skiped!");
        }

        http://www.codeproject.com/KB/aspnet/DotNetBulletQuestions.aspx?msg=2764693#xx2764693xx[^] A goto in a try/catch/finally block... urrrghh!

        I Offline
        I Offline
        icemanind
        wrote on last edited by
        #34

        I've programmed for over 10 years. The old BASIC, like GW-Basic or BasicA, yes I can honestly say that goto came in handy. However, I never once used it in C,C++, VB.NET or C#. Never. Since all modern languages have a Continue statement and a Break statement (for loops), I never needed a use for a goto. The reason, I'm guessing, that its not being removed in modern languages is to keep it compatible with old code. Very rarely does a language "lose" a command. They keep them so old code is compatible.

        C 1 Reply Last reply
        0
        • T tobster

          Use a break statement instead!

          S Offline
          S Offline
          Super Lloyd
          wrote on last edited by
          #35

          try it! you will improve you C# knowledge! or maybe read better... it's a double nested loop

          A train station is where the train stops. A bus station is where the bus stops. On my desk, I have a work station.... _________________________________________________________ My programs never have bugs, they just develop random features.

          1 Reply Last reply
          0
          • I icemanind

            I've programmed for over 10 years. The old BASIC, like GW-Basic or BasicA, yes I can honestly say that goto came in handy. However, I never once used it in C,C++, VB.NET or C#. Never. Since all modern languages have a Continue statement and a Break statement (for loops), I never needed a use for a goto. The reason, I'm guessing, that its not being removed in modern languages is to keep it compatible with old code. Very rarely does a language "lose" a command. They keep them so old code is compatible.

            C Offline
            C Offline
            ClementsDan
            wrote on last edited by
            #36

            It's an understatement to say that "goto came in handy" in the old style BASIC. You had to use GOTO because the language was severely lacking in control flow. DO...LOOP didn't exist, so you had to make those loops with GOTO. SELECT CASE didn't exist, so you had to use ON...GOTO. Multi-line IF statements didn't exist, so you either had to cram everything on one line or use GOTO. And exceptions didn't exist, so you used ON ERROR GOTO. So you ended up with code like this, filled with GOTO. And furthermore, line numbers were mandatory on every line, so it was very difficult to tell which lines were GOTO targets and which weren't. And this is what caused all the animosity towards the GOTO statement.

            1 Reply Last reply
            0
            • C CARPETBURNER

              protected void Page_Load(object sender, EventArgs e)
              {
              string str = "Even exception occur again in catch block still finally block is Working";
              try
              {
              throw new IndexOutOfRangeException();
              }
              catch
              {
              goto Hello;
              throw new IndexOutOfRangeException();

              }
              finally
              {
              Response.Redirect("Error.aspx?str="+ str);
              }
              Hello:
              Response.Write("Finally Skiped!");
              }

              http://www.codeproject.com/KB/aspnet/DotNetBulletQuestions.aspx?msg=2764693#xx2764693xx[^] A goto in a try/catch/finally block... urrrghh!

              J Offline
              J Offline
              Johan Vorster
              wrote on last edited by
              #37

              LMAO!!!! Didn't release it even existed in c#!! Love it! That will show those annoying OO purest with their fancy classes and methods and thingies!! :laugh: Go the GOTO!

              1 Reply Last reply
              0
              • C CARPETBURNER

                protected void Page_Load(object sender, EventArgs e)
                {
                string str = "Even exception occur again in catch block still finally block is Working";
                try
                {
                throw new IndexOutOfRangeException();
                }
                catch
                {
                goto Hello;
                throw new IndexOutOfRangeException();

                }
                finally
                {
                Response.Redirect("Error.aspx?str="+ str);
                }
                Hello:
                Response.Write("Finally Skiped!");
                }

                http://www.codeproject.com/KB/aspnet/DotNetBulletQuestions.aspx?msg=2764693#xx2764693xx[^] A goto in a try/catch/finally block... urrrghh!

                S Offline
                S Offline
                steveb
                wrote on last edited by
                #38

                for... do... while... return... switch... if... else... are all glorified GOTO statements. They all translate to assembler JMP by compiler. :laugh:

                1 Reply Last reply
                0
                • L Lost User

                  ou .. am I blind? :) sorry

                  VirtualVoid**.NET**

                  J Offline
                  J Offline
                  johannesnestler
                  wrote on last edited by
                  #39

                  in C++ drop throw switch-statement is allowed in C# not - if it was that, you didn't see.

                  1 Reply Last reply
                  0
                  • C CPallini

                    You may throw an exception for that. :)

                    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 Offline
                    J Offline
                    johannesnestler
                    wrote on last edited by
                    #40

                    hmm, what do you think? Why is the name of the Exception object "Exception" - because you should (ab)use it for control program flow? So I see it like this: Use Exceptions for exceptions Avoid goto, but if you must, why not use goto? A single goto, for a purpose as shown above, for shure does not leed to spaghetti-code, but don't try to replace all your for/whiles... with a goto. ;P

                    1 Reply Last reply
                    0
                    • T Thomas Weller 0

                      I know. But in the pseudocode above it will definitely execute the 'beep bop a loola'... :-D Regards Thomas

                      J Offline
                      J Offline
                      johannesnestler
                      wrote on last edited by
                      #41

                      wrong! read the code!

                      1 Reply Last reply
                      0
                      • C CARPETBURNER

                        protected void Page_Load(object sender, EventArgs e)
                        {
                        string str = "Even exception occur again in catch block still finally block is Working";
                        try
                        {
                        throw new IndexOutOfRangeException();
                        }
                        catch
                        {
                        goto Hello;
                        throw new IndexOutOfRangeException();

                        }
                        finally
                        {
                        Response.Redirect("Error.aspx?str="+ str);
                        }
                        Hello:
                        Response.Write("Finally Skiped!");
                        }

                        http://www.codeproject.com/KB/aspnet/DotNetBulletQuestions.aspx?msg=2764693#xx2764693xx[^] A goto in a try/catch/finally block... urrrghh!

                        C Offline
                        C Offline
                        cliran
                        wrote on last edited by
                        #42

                        my god, i really thought I wouldn't live to see the day someone actually have the nerve to use the goto statement in C#...

                        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