Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

While loop in C

  1. Jun 18, 2006 #1
    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?
  2. jcsd
  3. Jun 18, 2006 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    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!
  4. Jun 18, 2006 #3
    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.
  5. Jun 18, 2006 #4
    are you home hurkyl?
  6. Jun 18, 2006 #5
    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;
  7. Jun 18, 2006 #6
    That is exactly what I am doing and I am getting caugt in an infinite loop.
  8. Jun 18, 2006 #7
    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.
  9. Jun 19, 2006 #8
    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:
    Code (Text):

    while(run) {
         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: Jun 19, 2006
  10. Jun 19, 2006 #9


    User Avatar
    Homework Helper

    It should be:

    while variable == 2.

    You want == not = here, else it loops forever.
  11. Jun 19, 2006 #10
    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.
  12. Jul 17, 2006 #11

    How will i make an output of all even numbers from 2-18 using a while loop structure?????:confused:
  13. Jul 17, 2006 #12
    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook