Solved

Breaking from a do loop when a condition is not met

Posted on 2014-01-26
4
287 Views
Last Modified: 2014-01-26
I need to continue a do loop until a condition is met:

          // Get random Flop1 card
            string strImageName = "";
            int intCardNumber = 0;
            do
            {
                Random random = new Random();
                intCardNumber = random.Next(1, 27);
                strImageName = arrCards[intCardNumber, 0] + "Full";
 
// if condition 1 is true or condition 2 is true, then break out of the loop.
// condition 1 (txtHole1.Text != strImageName)
// condition 2  (txtHole2.Text != strImageName)

             
 if ((txtHole1.Text != strImageName) || (txtHole2.Text != strImageName)) // Make sure that Hole1 or Hole2 and strImageName are not the same
                {
                    break;  // do not get a new random number.
                }
            } while ((txtHole1.Text != strImageName) || (txtHole2.Text != strImageName));

// Does not break when Condition 1 or Condition 2 is false.

Please help.

Thanks,
0
Comment
Question by:Dovberman
  • 3
4 Comments
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 500 total points
ID: 39810360
You must think like a computer.

What is OR for you should often be translated to AND for the computer.

What you are doing is to loop as long as one of the conditions is true. So if only one is false, the loop goes on.

What your need to do is to loop as long as both are true. So when one is false, the loop will stop.

Replace || by &&.
0
 

Author Comment

by:Dovberman
ID: 39810384
if ((txtHole1.Text != strImageName) && (txtHole2.Text != strImageName)) // Make sure that Hole1 or Hole2 and strImageName are not the same
                {
                    break;  // do not get a new random number.
                }
            } while ((txtHole1.Text != strImageName) && (txtHole2.Text != strImageName));

Yes, this makes sense.  I will try it and give you feedback.

Thanks,
0
 

Author Comment

by:Dovberman
ID: 39810409
Yes, that works.

Thanks,
0
 

Author Closing Comment

by:Dovberman
ID: 39810410
Thanks
0

Featured Post

The New “Normal” in Modern Enterprise Operations

DevOps for the modern enterprise offers many benefits — increased agility, productivity, and more, but digital transformation isn’t easy, especially if you’re not addressing the right issues. Register for the webinar to dive into the “new normal” for enterprise modern ops.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question