My teacher said "I am going to have a walk" today in class and to me it seems incorrect. Correct variants that I know are:
- Going for a walk
- Going to take a walk
- Going to walk
Is this correct? If so, why?
You could say "I am going to have a walk" and although it seems a bit clunky to me it is quite understandable.
Going for a walk and going to take a walk would both work well, the first is maybe more British English the latter more US English but they are the most common ways one would use that phrase.
"Going to walk" is not a statement in itself, it needs a destination - "I'm going to walk to the shops" would be fine but if you had no destination in mind or you didn't want to say what your destination was you would just say "I'm going for a walk."
There is nothing wrong with this construction. It sounds more British than American, for some reason, but if you can have a fight, or have a bath, or have a go at something, why can't you have a walk?
It's fine. I agree that it sounds more British than American. Americans tend to prefer "take" in expressions such as "take a shower," while British English will also use "have." See this link: http://www.bbc.co.uk/worldservice/learningenglish/grammar/learnit/learnitv343.shtml
Here’s why it sounds weird for me to hear “have a walk”:
This graph is a search in the corpus of contemporary American English for
_v* a walk where
_v* matches verbs and everything is grouped by lemma. I cut the rest of the graph off, but it wasn’t really relevant because everything is less frequent and the words aren’t synonymous with “take a walk”.
As for the expressions that do show up: “be a walk” doesn’t return relevant results (eg “be a walk in the park”), “draw a walk” is sports (baseball?) and the other categories should be pretty obvious in meaning.
Here is that same search in the British national corpus:
As you can see “take a walk” is still the most popular, but “have a walk” is also popular, so that’s why it sounds natural to British people to “have a walk”.