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. General Programming
  3. C#
  4. Break out of a loop

Break out of a loop

Scheduled Pinned Locked Moved C#
comtoolshelpquestion
14 Posts 9 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 Programm3r

    Hi all, I would like to know how I can get out of this loop the first time the condition is true? public string DirSearch(string sDir) { try { string compareString = ""; foreach ( string dir in Directory.GetDirectories(sDir)) { foreach ( string file in Directory.GetFiles(dir)) { compareString = file.Substring(file.LastIndexOf("\\"),(file.Length-file.LastIndexOf("\\"))); if (globalFileName == compareString.Substring(1, (compareString.Length - 1))) { /* File was found */ return file; } } DirSearch(dir); } return ""; } catch (System.Exception excpt) { MessageBox.Show(excpt.Message,"Exception Occured",MessageBoxButtons.OK,MessageBoxIcon.Error); return ""; } }
    Many Thanks Regards,


    The only programmers that are better that C programmers are those who code in 1's and 0's :bob: :)Programm3r My Blog: ^_^

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

    Programm3r wrote:

    if (globalFileName == compareString.Substring(1, (compareString.Length - 1))) { /* File was found */ return file; }

    if you mean this bit, it already does by virtue of the return keyword. In general you can break a look by using the break keyword. For completeness you may also like to look up the continue keyword in c#

    1 Reply Last reply
    0
    • L led mike

      AFAIK the only way to break out of foreach look is with a "break" statement. There are some interesting discussions, and yes blogs, around the net about foreach versus for loops in .NET. You might want to check them out.

      P Offline
      P Offline
      Programm3r
      wrote on last edited by
      #4

      Hi Mike, Thanks for your reply and comments but, break does not work. I have tried it without success. Regards,


      The only programmers that are better that C programmers are those who code in 1's and 0's :bob: :)Programm3r My Blog: ^_^

      L 1 Reply Last reply
      0
      • P Programm3r

        Hi Mike, Thanks for your reply and comments but, break does not work. I have tried it without success. Regards,


        The only programmers that are better that C programmers are those who code in 1's and 0's :bob: :)Programm3r My Blog: ^_^

        L Offline
        L Offline
        led mike
        wrote on last edited by
        #5

        Programm3r wrote:

        Thanks for your reply and comments but, break does not work. I have tried it without success.

        works for me

        string[] test = {"help","me","with","for","loops"};
        foreach(string t in test)
        {
        Console.WriteLine(t);
        if( t.Equals("for"))
        break;
        }

        1 Reply Last reply
        0
        • P Programm3r

          Hi all, I would like to know how I can get out of this loop the first time the condition is true? public string DirSearch(string sDir) { try { string compareString = ""; foreach ( string dir in Directory.GetDirectories(sDir)) { foreach ( string file in Directory.GetFiles(dir)) { compareString = file.Substring(file.LastIndexOf("\\"),(file.Length-file.LastIndexOf("\\"))); if (globalFileName == compareString.Substring(1, (compareString.Length - 1))) { /* File was found */ return file; } } DirSearch(dir); } return ""; } catch (System.Exception excpt) { MessageBox.Show(excpt.Message,"Exception Occured",MessageBoxButtons.OK,MessageBoxIcon.Error); return ""; } }
          Many Thanks Regards,


          The only programmers that are better that C programmers are those who code in 1's and 0's :bob: :)Programm3r My Blog: ^_^

          S Offline
          S Offline
          Shpendh
          wrote on last edited by
          #6

          you can use also "goto" short example: string filename = ""; for(int i = 0; i < 10; i++) { if(i == 3) { filename = "path" goto FileHasFounded; } } FileHasFounded: MessageBox.Show("file name is this: " filename); break don't work in this case because you have two loops. and it will break only from one loop hope it will help. respect.

          spaps

          C 1 Reply Last reply
          0
          • S Shpendh

            you can use also "goto" short example: string filename = ""; for(int i = 0; i < 10; i++) { if(i == 3) { filename = "path" goto FileHasFounded; } } FileHasFounded: MessageBox.Show("file name is this: " filename); break don't work in this case because you have two loops. and it will break only from one loop hope it will help. respect.

            spaps

            C Offline
            C Offline
            Colin Angus Mackay
            wrote on last edited by
            #7

            Shpendh wrote:

            you can use also "goto"

            The number of valid uses of goto in a language as rich as C# is negligible. In fact I can't think of any time I've used a goto in any language in the last 10 years.


            Upcoming FREE developer events: * Developer! Developer! Developer! 6 * Developer Day Scotland My website

            J P P S 4 Replies Last reply
            0
            • C Colin Angus Mackay

              Shpendh wrote:

              you can use also "goto"

              The number of valid uses of goto in a language as rich as C# is negligible. In fact I can't think of any time I've used a goto in any language in the last 10 years.


              Upcoming FREE developer events: * Developer! Developer! Developer! 6 * Developer Day Scotland My website

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

              Exactly what I was thinking. Number of times ive used goto in c#: zero!

              M 1 Reply Last reply
              0
              • C Colin Angus Mackay

                Shpendh wrote:

                you can use also "goto"

                The number of valid uses of goto in a language as rich as C# is negligible. In fact I can't think of any time I've used a goto in any language in the last 10 years.


                Upcoming FREE developer events: * Developer! Developer! Developer! 6 * Developer Day Scotland My website

                P Offline
                P Offline
                Pete OHanlon
                wrote on last edited by
                #9

                if (usingGoto) { goto jailAndDoNotPassGo; }

                Deja View - the feeling that you've seen this post before.

                My blog | My articles

                1 Reply Last reply
                0
                • C Colin Angus Mackay

                  Shpendh wrote:

                  you can use also "goto"

                  The number of valid uses of goto in a language as rich as C# is negligible. In fact I can't think of any time I've used a goto in any language in the last 10 years.


                  Upcoming FREE developer events: * Developer! Developer! Developer! 6 * Developer Day Scotland My website

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

                  Other than in a C# switch?

                  C 1 Reply Last reply
                  0
                  • P PIEBALDconsult

                    Other than in a C# switch?

                    C Offline
                    C Offline
                    Colin Angus Mackay
                    wrote on last edited by
                    #11

                    PIEBALDconsult wrote:

                    Other than in a C# switch?

                    Nope. I don't use gotos in switch statements - although I am aware that it is one of the few valid places you might consider using them. In fact I don't use switch statements all that often as I generally (but not always) consider them a sign of a poor design. Although I think that is just because I've seen them used badly in so many situations.


                    Upcoming FREE developer events: * Developer! Developer! Developer! 6 * Developer Day Scotland My website

                    1 Reply Last reply
                    0
                    • J J4amieC

                      Exactly what I was thinking. Number of times ive used goto in c#: zero!

                      M Offline
                      M Offline
                      Mark Churchill
                      wrote on last edited by
                      #12

                      Breaking out of a couple of nested loops? (I always wanted to be able to name loops, or do a break(2); or something similar)... You're right though - theres very very few usages of goto that are "legitimate".

                      Mark Churchill Director Dunn & Churchill

                      1 Reply Last reply
                      0
                      • C Colin Angus Mackay

                        Shpendh wrote:

                        you can use also "goto"

                        The number of valid uses of goto in a language as rich as C# is negligible. In fact I can't think of any time I've used a goto in any language in the last 10 years.


                        Upcoming FREE developer events: * Developer! Developer! Developer! 6 * Developer Day Scotland My website

                        S Offline
                        S Offline
                        Shpendh
                        wrote on last edited by
                        #13

                        i didn't say that "goto" is the only one choise in this solution, i wanted to help him with one of the solution, i never didn't use "goto" in my application but i have only learned about it. but anyway sorry, maybe this example will help, string filename = ""; bool isFound = false; foreach(string str in strColl) { if(!isFound) { foreach(string str2 in strColl2) { if(str2 == "founded") { filename = str2; isFound = true; break;//break from first loop } } } else { break;//break from second loop } } hope this will help,

                        spaps

                        1 Reply Last reply
                        0
                        • P Programm3r

                          Hi all, I would like to know how I can get out of this loop the first time the condition is true? public string DirSearch(string sDir) { try { string compareString = ""; foreach ( string dir in Directory.GetDirectories(sDir)) { foreach ( string file in Directory.GetFiles(dir)) { compareString = file.Substring(file.LastIndexOf("\\"),(file.Length-file.LastIndexOf("\\"))); if (globalFileName == compareString.Substring(1, (compareString.Length - 1))) { /* File was found */ return file; } } DirSearch(dir); } return ""; } catch (System.Exception excpt) { MessageBox.Show(excpt.Message,"Exception Occured",MessageBoxButtons.OK,MessageBoxIcon.Error); return ""; } }
                          Many Thanks Regards,


                          The only programmers that are better that C programmers are those who code in 1's and 0's :bob: :)Programm3r My Blog: ^_^

                          A Offline
                          A Offline
                          Alan N
                          wrote on last edited by
                          #14

                          According to the C# 2.0 standard ISO/IEC 23270 15.9.1 The break statement .... .... When multiple switch, while, do, for, or foreach statements are nested within each other, a break statement applies only to the innermost statement. To transfer control across multiple nesting levels, a goto statement (§15.9.3) shall be used. So there you are, it's official, use a goto. Is there a smiley for "light the blue touchpaper and stand well back"?

                          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