# Taking input from the user Granite has a special operation that allows you to ask your user for a value to place into a variable! This is useful for asking your user things, like what is their name! ## New operations * `:?(variable)`, take input, asks the user for input, if there is a value in (variable) then prompt them with this otherwise present them with a `? ` prompt ## Tutorial Your program should look something like this at this point: ``` :>10,finishing_number :>1,step :>0,starting_number :@count :astarting_number,step,starting_number :!starting_number :-count,starting_number,finishing_number ``` We want to _ask_ the user to input numbers by giving them a prompt! At the top of your program, initialise a variable called `message` and add anything you want! Just make sure it's obvious to the user that you are asking them for numbers then print out this variable immediately after! Now, we want to _ask_ the user for their numbers! Replace the variable definitions for `finishing_number`, `step` and `starting_number` with these three statements: ``` :?starting_number :?finishing_number :?step ``` Now execute your program! You should see something like this: ``` Enter some numbers! ? ``` Now if you put in 0, then 10 and then 1 you will see the same output as you would have before! ## Extension Can you make each prompt for the variables output a message for each one like this?: ``` Enter some numbers! Starting number? 0 Finishing number? 10 Step? ``` ## Continue the guidebook * [Final page: Finishing touches!](finishing-touches.md)