Why can't I write int getWhatTheyWant(int choice) instead? Isn't those () used to declare variables that are about to be used inside the private function getWhatTheyWant()?
In your 2nd example the variable is being passed to the function externally. The value is therefore already known before the function call occurs (hopefully.) In the 1st you are getting the value from the user. Just look at how you would call each function:
1 2 3
getWhatTheyWant() // 1st fuction
getWhatTheyWant(alreadyEnteredValue) //2nd function
This is assuming you had some mechanism for already assigning a value to alreadyEnteredValue before you called it, of course.