No, I do not understand the difference between a do while loop and a while loop. Any explanation would be helpful, Jim. Thanks. Jes On Jul 19, 2010, at 7:26 AM, Homme, James wrote: > Hi Jess, > The assignment wants you to turn the for loop into a do while loop, not a > while loop. Do you understand the difference between a do while loop and a > while loop? > > Thanks. > > Jim > > Jim Homme, > Usability Services, > Phone: 412-544-1810. Skype: jim.homme > Internal recipients, Read my accessibility blog. Discuss accessibility > here.Accessibility Wiki: Breaking news and accessibility advice > > From: programmingblind-bounce@xxxxxxxxxxxxx > [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jes > Sent: Sunday, July 18, 2010 11:45 PM > To: programmingblind@xxxxxxxxxxxxx > Subject: Re: How to convert for, statements into while loops? > > Hi all, > Here is the exact assignment from the text book. I'm just trying to follow > what the book assigns. > ***Assignment** > In this lab, you will modify the program you created in Lab 8.2. The modified > program will use a posttest loop (rather than a pretest loop) to display the > multiplication tables. > > Currently, the program uses a for statement to display the multiplication > tables. Your task is to modify the program so that it uses a do while > statement rather than a for statement. Make the appropriate modifications to > the program. > > Jes > > On Jul 18, 2010, at 10:29 PM, Dale Leavens wrote: > > > Usually you don't want to do that. The reason is that they are intended for > different purposes. A "for" loop is intended where an operation is to be > performed a known number of times. If that number is to be changed by some > other aspect of the programme, for example if you wanted to work with a > multiplicand and another selected number of multipliers then you would input > a value for the last value, the 10, in your present "for" loop and in that > way alter the number of multiplications but it is still a known number of > operations. > > A while loop is intended for use while a given condition is true. In this > case while you want to continue entering numbers to multiply. > > You could of course still make a "while" loop achieve this with a statement > like: > > while i < 11 and initializing i to 0 on entry to the loop but this is pretty > well pointless. > > Now it is a matter of form but you should give your instruction to run or > exit the programme before entering the "while" loop, something like: > > cout << "Press 'Y' to display a multiplication table, any other key to quit. > "; > do { > cin >> anotherTable; > > In this way the user can choose to abort the programme before it enters the > loop. > > Not clear why you set up your "for" loop like you did. > for (int multiplier = -1; multiplier < 10; multiplier += 1) > > Don't you want the multiplier to start at 1 and loop until it multiplies by > 10 then quits? This looks like it begins as a negative 1 through 0 and on up > to 10. I think it should be: > > for (int multiplier = 1; multiplier < 11; multiplier++) > > Note the double + signs after multiplier. This increments the integer by 1 > after it is used so, after it becomes 10 and the loop executes it becomes 11 > and when the loop reaches the top again it fails. > > If you made that a while loop you would have to set multiplier to either 1 > before entering the loop and still have to have a statement incrementing > multiplier by 1 immediately before the while statement, something like > > multiplier++; > while (multiplier <11); > > so that multiplier will fail the test when it reaches 11. It must do this at > the end of the loop. > > Alternately you could set multiplier to 0 before entering the loop then > immediately increment it to 1 before acting on it. You have to be certain > though that it will be reset to 0 or 1 depending on your choice every time > before the loop is executed. > > The "for" loop is the correct choice in that circumstance just as the while > loop is the correct choice for repeating the sequence because there is no > reasonable way to determine in advance if the user wants to continue > inputting numbers or how many times. > > I hope this clarifies this for you. > > Some languages also have a do -- until loop construct. > > Dale Leavens. > > > > > ----- Original Message ----- > From: Jes > To: programmingblind@xxxxxxxxxxxxx > Sent: Sunday, July 18, 2010 9:38 PM > Subject: How to convert for, statements into while loops? > > Hi all, > I got my program to work correctly, but now I want to learn how to convert > the pre test loop, the for statement, into a while loop. > ***code** > //Ch8lab2.cpp > //Displays one or more multiplication tables > //Created/revised by Jes Smith on July 18, 2010 > > #include <iostream> > > using std::cout; > using std::cin; > using std::endl; > > int main() > { > //declare variables > char anotherTable = ' '; > int multiplicand = 0; > int product = 0; > > do > { > //get the multiplicand > cout << "Enter the multiplicand: "; > cin >> multiplicand; > > //display the multiplication table > for (int multiplier = -1; multiplier < 10; multiplier += 1) > { > product = multiplicand * multiplier; > cout << multiplicand << " * " << multiplier > << " = " << product << endl; > } //end for > > cout << endl; > cout << "Display another multiplication table? (Y/N) "; > cin >> anotherTable; > } while (toupper(anotherTable) == 'Y'); > return 0; > > } //end of function > > > This e-mail and any attachments to it are confidential and are intended > solely for use of the individual or entity to whom they are addressed. If you > have received this e-mail in error, please notify the sender immediately and > then delete it. If you are not the intended recipient, you must not keep, > use, disclose, copy or distribute this e-mail without the author's prior > permission. The views expressed in this e-mail message do not necessarily > represent the views of Highmark Inc., its subsidiaries, or affiliates.