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. for those of you purists that don't like break, continue and goto

for those of you purists that don't like break, continue and goto

Scheduled Pinned Locked Moved The Lounge
question
65 Posts 21 Posters 13 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.
  • M MSBassSinger

    Why not? What is the net value gain by the alternative you show?

    honey the codewitchH Offline
    honey the codewitchH Offline
    honey the codewitch
    wrote on last edited by
    #54

    there is none

    When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

    1 Reply Last reply
    0
    • honey the codewitchH honey the codewitch

      why do this?

      for(int i = 0;i
      instead of

      for(int i = 0;i

      hengh?? why you still use break?

      :laugh:

      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

      O Offline
      O Offline
      obermd
      wrote on last edited by
      #55

      Those two code snippets don't do the same thing. The first doesn't change arr, the second does.

      honey the codewitchH 1 Reply Last reply
      0
      • honey the codewitchH honey the codewitch

        why do this?

        for(int i = 0;i
        instead of

        for(int i = 0;i

        hengh?? why you still use break?

        :laugh:

        When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

        W Offline
        W Offline
        W Balboos GHB
        wrote on last edited by
        #56

        Purist? Baaah! Think of this in terms of far-Eastern philosophy, to wit, Yin/Yang[^]. Always the spot of yin in the yang portion, the spot of yang in the yin portion. Neither can exist without the other. So, continue to use break as they help you goto a better place.

        Ravings en masse^

        "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

        "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

        honey the codewitchH 1 Reply Last reply
        0
        • O obermd

          Those two code snippets don't do the same thing. The first doesn't change arr, the second does.

          honey the codewitchH Offline
          honey the codewitchH Offline
          honey the codewitch
          wrote on last edited by
          #57

          How does it do that? If it does, it is a bug

          When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

          1 Reply Last reply
          0
          • honey the codewitchH honey the codewitch

            why do this?

            for(int i = 0;i
            instead of

            for(int i = 0;i

            hengh?? why you still use break?

            :laugh:

            When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

            S Offline
            S Offline
            SeattleC
            wrote on last edited by
            #58

            Because neither one of these loops does anything except waste time. Was there perhaps a reason you wanted to find out if valueToFind was in arr? If there was, the first loop is almost right, i points to the matching entry on loop exit. Only problem is, i goes out of scope on loop exit. Sigh. The second loop always has i== arr.Length on loop exit, and i still goes out of scope

            honey the codewitchH 1 Reply Last reply
            0
            • S SeattleC

              Because neither one of these loops does anything except waste time. Was there perhaps a reason you wanted to find out if valueToFind was in arr? If there was, the first loop is almost right, i points to the matching entry on loop exit. Only problem is, i goes out of scope on loop exit. Sigh. The second loop always has i== arr.Length on loop exit, and i still goes out of scope

              honey the codewitchH Offline
              honey the codewitchH Offline
              honey the codewitch
              wrote on last edited by
              #59

              the code to do something is supposed to go in the loop body. i omitted it for the example. sorry i wasn't more clear.

              When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

              1 Reply Last reply
              0
              • W W Balboos GHB

                Purist? Baaah! Think of this in terms of far-Eastern philosophy, to wit, Yin/Yang[^]. Always the spot of yin in the yang portion, the spot of yang in the yin portion. Neither can exist without the other. So, continue to use break as they help you goto a better place.

                Ravings en masse^

                "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                honey the codewitchH Offline
                honey the codewitchH Offline
                honey the codewitch
                wrote on last edited by
                #60

                Prince Wang's programmer was coding software. His fingers danced upon the keyboard. The program compiled without and error message, and the program ran like a gentle wind. "Excellent!" the Prince exclaimed. "Your technique is faultless!" "Technique?" said the programmer, turning from his terminal, "What I follow is Tao -- beyond all techniques! When I first began to program, I would see before me the whole problem in one mass. After three years, I no longer saw this mass. Instead, I used subroutines. But now I see nothing. My whole being exists in a formless void. My senses are idle. My spirit, free to work without a plan, follows its own instinct. In short, my program writes itself. True, sometimes there are difficult problems. I see them coming, I slow down, I watch silently. Then I change a single line of code and the difficulties vanish like puffs of idle smoke. I then compile the program. I sit still and let the joy of the work fill my being. I close my eyes for a moment and then log off." Prince Wang said, "Would that all of my programmers were as wise!" - The Tao of Programming

                When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                1 Reply Last reply
                0
                • honey the codewitchH honey the codewitch

                  why do this?

                  for(int i = 0;i
                  instead of

                  for(int i = 0;i

                  hengh?? why you still use break?

                  :laugh:

                  When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                  A Offline
                  A Offline
                  AnotherKen
                  wrote on last edited by
                  #61

                  only use Goto if you like spaghetti code ;)

                  honey the codewitchH 1 Reply Last reply
                  0
                  • A AnotherKen

                    only use Goto if you like spaghetti code ;)

                    honey the codewitchH Offline
                    honey the codewitchH Offline
                    honey the codewitch
                    wrote on last edited by
                    #62

                    i use gotos for generated state machine code so the code will look exactly like the graphs generated by graphviz. it makes the code more understandable. like this snippet, implementing q1 of the graph:

                    q1:
                    if((pc.Current>='0'&& pc.Current<='9')||
                    (pc.Current>='A'&& pc.Current<='Z')||
                    (pc.Current=='_')||
                    (pc.Current>='a'&& pc.Current<='z')) {
                    sb.Append((char)pc.Current);
                    pc.Advance();
                    goto q1;
                    }
                    return new System.Collections.Generic.KeyValuePair("id",sb.ToString());

                    from (A Regular Expression Engine in C#[^]) there's supposed to be a picture at the link but it's no longer showing up for me. maybe it will for you. in any case, there's a time and a place for everything.

                    When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                    A 1 Reply Last reply
                    0
                    • honey the codewitchH honey the codewitch

                      i use gotos for generated state machine code so the code will look exactly like the graphs generated by graphviz. it makes the code more understandable. like this snippet, implementing q1 of the graph:

                      q1:
                      if((pc.Current>='0'&& pc.Current<='9')||
                      (pc.Current>='A'&& pc.Current<='Z')||
                      (pc.Current=='_')||
                      (pc.Current>='a'&& pc.Current<='z')) {
                      sb.Append((char)pc.Current);
                      pc.Advance();
                      goto q1;
                      }
                      return new System.Collections.Generic.KeyValuePair("id",sb.ToString());

                      from (A Regular Expression Engine in C#[^]) there's supposed to be a picture at the link but it's no longer showing up for me. maybe it will for you. in any case, there's a time and a place for everything.

                      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                      A Offline
                      A Offline
                      AnotherKen
                      wrote on last edited by
                      #63

                      If you can keep it that ordered then that is good. The problem with the convenience of goto is that it tends to end up being over-used and that is what leads to problems.

                      honey the codewitchH 1 Reply Last reply
                      0
                      • A AnotherKen

                        If you can keep it that ordered then that is good. The problem with the convenience of goto is that it tends to end up being over-used and that is what leads to problems.

                        honey the codewitchH Offline
                        honey the codewitchH Offline
                        honey the codewitch
                        wrote on last edited by
                        #64

                        yeah, i use gotos pretty much in generated code. in this case, it just happened to make the code clearer, but state machines are kind of their own animal. It's really hard to implement one using "proper" looping techniques. At best you have a while(true) loop with a giant switch case in it. =(

                        When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                        1 Reply Last reply
                        0
                        • honey the codewitchH honey the codewitch

                          why do this?

                          for(int i = 0;i
                          instead of

                          for(int i = 0;i

                          hengh?? why you still use break?

                          :laugh:

                          When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                          Z Offline
                          Z Offline
                          zezba9000
                          wrote on last edited by
                          #65

                          Define purist? Because using C the way it was designed to be used in more pure.

                          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