Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 250
  • Last Modified:

An alternate solution for this bad loop

I finally got this loop to change but I can't fiqure out another way to stop

while (x = 1)

   {

            cout << "x is: " << x << '\n';

   }


The above code executes a never ending loop displaying x is: 1 out to the console.

This happens because condition x = 1 is reset to 1 (never changes) every time the loop is performed,  even if the  x++  increment is added.

One way to stop this loop is as follows&.

    int x = 1;      // initialize interger x to equal 1

    while (x < 2) // execute loop while x is less than 2

    {    
            cout << "x is: " << x << '\n';      // console out x is: 1

            x++;   // increment x by 1 (this will change the loop condition and terminate the loop

    }

I need an alternate way to stop this loop.  Can you help me?
0
cooperk50
Asked:
cooperk50
  • 3
  • 2
2 Solutions
 
Kent OlsenData Warehouse Architect / DBACommented:
Hi cooperk50,

You must have missed the answer in the other thread.

  while (x == 1)

That will enter the loop if x is 1, and keep looping until x has any other value.

If you want to execute the loop once, no matter what the value of x, do this:

  do
  {
    cout << "x is:  " << x << \n";
    ++x;
  } while (x == 1);


Good Luck,
Kent
0
 
Infinity08Commented:
>> I need an alternate way to stop this loop.  Can you help me?

What do you mean by alternate ?

What do you want the code to do ?
0
 
itsmeandnobodyelseCommented:
>>>> I need an alternate way to stop this loop.

You could do:

  int x = 0;
  while (true)
  {
        cout << "x = " << x << endl;
        cin >> x;
        if (x <= 0)
              break;
  }

Note, the break statement would exit the current loop. In case of a nested loop (loop in loop) you need a break for each of the loops. Another statement for a loop is the 'continue' statement. It will 'go to' end of loop but not breaking it. So, if you want to exit the loop you should break. Or you set the end condition and call continue.

  int x = 0;
  bool goon = true;
  while (goon)
  {
       cout << " x = " << x << endl;
       cout << "Do you want to go on? [Y/N] ";
       char c;
       cin >> c;
       if (c == 'N' || c == 'n')
       {
             goon = false;
             continue;
       }  
       x = rand();  // get any randomized number
  }

Shorter is the following (not using continue)

  int x = 0;
  bool goon = true;
  while (goon)
  {
       cout << " x = " << x << endl;
       cout << "Do you want to go on? [Y/N] ";
       char c;
       cin >> c;
       goon = !(c == 'N' || c == 'n');
       x = rand();  // get any randomized number
  }

However, the difference is that x was set to a new random number if not calling continue or break.

Regards, Alex



0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
itsmeandnobodyelseCommented:
Whatever the wished answer was. Kdo didn't post an 'alternate' answer to that the asker posted.

I would recommend to delete the q. without refund.
0
 
Kent OlsenData Warehouse Architect / DBACommented:
When tied to a similar question in another thread, my answer would seem to be sufficient.  The poster first asked this:

  http://www.experts-exchange.com/Programming/Languages/CPP/Q_22999993.html

He then repeated his error in this thread.


Kent
0
 
itsmeandnobodyelseCommented:
>>>> When tied to a similar question in another thread, my answer would seem to be sufficient.  

You are right, Kent.

Sorry for misinterpreting your answer here in that thread.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now