Click here to Skip to main content
15,117,549 members
Articles / Programming Languages / C#
Alternative
Tip/Trick
Posted 31 Jan 2011

Tagged as

Stats

4.1K views
2 bookmarked

The goto-less goto!

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
31 Jan 2011CPOL
For Cbool bFailed = true;// foreverfor(;;) { // do something here. if(condition1) { // exit the loop (goto) break; } // do something here. // .... // In case you want to goto to the top instead of exit. if(condition2) { // jump to top of the...
For C
bool bFailed = true;

// forever
for(;;) {
  // do something here.

  if(condition1) {
    // exit the loop (goto)
    break;
  }

  // do something here.
  // ....

  // In case you want to goto to the top instead of exit.
  if(condition2) {
    // jump to top of the loop. (goto)
    continue;
  }

  // Success.
  bFailed = false;
  // This break is necessary to avoid an infinite loop.
  break;
} // forever

if(bFailed) {
  // do your error cleanup here. 
}

// do your unconditional cleanup here.


For C++
bool bFailed = true;

// In case of an exception.
try {
  // forever
  for(;;) {
    // do something here.
  
    if(condition1) {
      // exit the loop (goto)
      break;
    }
  
    // do something here.
    // ....
  
    // In case you want to goto to the top instead of exit.
    if(condition2) {
      // jump to top of the loop. (goto)
      continue;
    }
  
    // Success.
    bFailed = false;
    // This break is necessary to avoid an infinite loop.
    break;
  } // forever
} catch(...) {
  // this assumes you want to catch all.
}

if(bFailed) {
  // do your error cleanup here. 
}

// do your unconditional cleanup here.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

rxantos
United States United States
No Biography provided

Comments and Discussions

 
-- There are no messages in this forum --