PDA

View Full Version : While loop in C


Nothing000
Jun18-06, 09:21 PM
How would one use a while loop in the C programmin language to ask the user if they want to terminate the program, or execute it again. You could say press 1 to terminate and press 2 to execute again. How would someone set that up with a while loop?

Hurkyl
Jun18-06, 09:31 PM
That's not what a while loop does; a while loop is merely one of the components you will use in your program.

If you write down, step by step, exactly how you want your program to behave, it will hopefully be clear how to write it!

Nothing000
Jun18-06, 09:42 PM
I want to say:
while variable = 2
execute program

and I will ask the user to press 1 to use the program again, or press to to terminate the program.

Nothing000
Jun18-06, 09:54 PM
are you home hurkyl?

vinter
Jun18-06, 10:52 PM
user_choice = 1
while (user_choice == 1)
{
program code;
ask "what do you want to do (1 for repeat 2 for exit)";
scanf into user_choice;
}

Nothing000
Jun18-06, 11:04 PM
That is exactly what I am doing and I am getting caugt in an infinite loop.

Nothing000
Jun18-06, 11:06 PM
when I run the program it goes through it the first time fine, then it asks enter 1 to repeat or 2 to exit. When I enter 1 it goes into an infinite loop.

fargoth
Jun19-06, 03:38 AM
make sure you used &user_choice with the scanf argument, if you just put user_choice scanf will put 2 at the memory location 1...

you can printf user_choice and see if it got the right value just before the loop ends, so you'd be sure its 2...
or put your code here so we can see whats wrong...


by the way... it's just style, but i suggest using boolean for that kind of thing:

run=1;
while(run) {
...
scanf("%d",&user_choice);
if (user_choice==2) run=0;
}

it's just nicer.

i once was an efficiancy freak, id use one integer to store 16 boolenas...

rcgldr
Jun19-06, 05:25 AM
I want to say:
while variable = 2
execute program


It should be:

while variable == 2.

You want == not = here, else it loops forever.

Nothing000
Jun19-06, 10:12 PM
I have the == sign there, I just wrote it wrong in this thread. Sorry. I will post the souce code soon so you guys can look it over to see if you can help me.

nesir
Jul17-06, 08:10 PM
How will i make an output of all even numbers from 2-18 using a while loop structure?????:confused:

neurocomp2003
Jul17-06, 09:06 PM
note that you must differ between 1 and '1'. one is a int the other is a char. This is important in the type of data you read from your scanf.

You could also look into the "break;" keyword. and figure out how to do an infinite loop with just while(?) {}. for instance while(true) {} is a C++ option.