This is probably something simple that I am overlooking, but my question is is there a way for when a user inputs in a certain thing, it goes back up to the top and re executes the program? I know that I will need an if loop but I don't know how to do it.
Probably just a basic question
Started by NMetallic123, Feb 16 2014 09:02 PM
3 replies to this topic
#1
Posted 16 February 2014 - 09:02 PM
#2
Posted 17 February 2014 - 02:37 AM
local flag = false
while not flag do
input = read()
if input ~= "Ponies" then
flag = true
end
end
--Other code
I believe that should work.
#3
Posted 17 February 2014 - 07:40 AM
Or put the code you wanna loop into a function and setup a while loop that executes that function, based on the user input (Tjakka5 posted how to do this above).
Edited by Jim, 17 February 2014 - 07:41 AM.
#4
Posted 17 February 2014 - 01:18 PM
There are two basic approaches -- an exit condition in the while statement itself, or a break condition within the while loop's execution block. Tjakka5 gave you an exit condition within the while statement. It relied on a variable external to the scope of the while loop. Let's try this out using key press events. We will exit if the user presses the "q" key.
The second way is to break out of a while loop when a condition occurs. This does not rely on variables external to the while loop. The break statement will move the program execution counter to one statement past the end statement of the while loop.
A break statement is immediate. If you try these two versions out, you will find that the print statement print ("Hello from inside of the while loop") will execute one more time in the first example because the while loop will continue to finish execution of all the statements in the while loop before the while condition is tested again. In the break example, when the condition is satisfied, the while loop terminates immediately before printing "Hello from inside of the while loop".
Both are legitimate programming techniques which are used depending on what you as the programmer wish to accomplish.
local exitConditionVariable = false
while not exitConditionVariable do
print ("Waiting for a key press...")
local _,key = os.pullEvent("key")
if key == keys.q then
exitConditionVariable = true
end
print ("Hello from inside of the while loop")
end
print ("Done")
The second way is to break out of a while loop when a condition occurs. This does not rely on variables external to the while loop. The break statement will move the program execution counter to one statement past the end statement of the while loop.
while true do -- do this forever
print ("Waiting for a key press...")
local _,key = os.pullEvent("key")
if key == keys.q then
break -- will exit the while loop
end
print ("Hello from inside of the while loop")
end
print ("Done")
A break statement is immediate. If you try these two versions out, you will find that the print statement print ("Hello from inside of the while loop") will execute one more time in the first example because the while loop will continue to finish execution of all the statements in the while loop before the while condition is tested again. In the break example, when the condition is satisfied, the while loop terminates immediately before printing "Hello from inside of the while loop".
Both are legitimate programming techniques which are used depending on what you as the programmer wish to accomplish.
A Note on the use of NOT
Edited by surferpup, 17 February 2014 - 01:41 PM.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users











