Using a While Loop to Control Program Termination in C

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
11 replies · 4K views
Nothing000
Messages
403
Reaction score
0
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?
 
Physics news on Phys.org
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!
 
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.
 
are you home hurkyl?
 
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;
}
 
That is exactly what I am doing and I am getting caugt in an infinite loop.
 
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.
 
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 what's wrong...by the way... it's just style, but i suggest using boolean for that kind of thing:
Code:
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...
 
Last edited:
Nothing000 said:
I want to say:
while variable = 2
execute program

It should be:

while variable == 2.

You want == not = here, else it loops forever.
 
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.
 
help!

How will i make an output of all even numbers from 2-18 using a while loop structure?:confused:
 
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.