Present perfect

Present perfect

Do you know how to use phrases like She's called every day this week, I've broken my leg and Have you ever been to Scotland? Test what you know with interactive exercises and read the explanation to help you.

Look at these examples to see how the present perfect is used.

He's been to ten different countries.
I haven't seen her today.
My phone's run out of battery. Can I use yours?
Have you ever dyed your hair a different colour?

Try this exercise to test your grammar.

Grammar test 1

Present perfect: Grammar test 1

Read the explanation to learn more.

Grammar explanation

We use the present perfect simple (have or has + past participle) to talk about past actions or states which are still connected to the present.

Unfinished time and states

We often use the present perfect to say what we've done in an unfinished time period, such as today, this week, this year, etc., and with expressions such as so far, until now, before, etc.

They've been on holiday twice this year.
We haven't had a lot of positive feedback so far.
I'm sure I've seen that film before.

We also use it to talk about life experiences, as our life is also an unfinished time period. We often use never in negative sentences and ever in questions.

I've worked for six different companies.
He's never won a gold medal.
Have you ever been to Australia?

We also use the present perfect to talk about unfinished states, especially with for, since and how long.

She's wanted to be a police officer since she was a child.
I haven't known him for very long.
How long have you had that phone?

Finished time and states

If we say when something happened, or we feel that that part of our life is finished, we use the past simple.

We visited Russia for the first time in 1992.
I went to three different primary schools.
Before she retired, she worked in several different countries.

We also use the past simple for finished states.

We knew all our neighbours when we were children.
I didn't like bananas for a really long time. Now I love them!

Past actions with a result in the present

We can use the present perfect to talk about a past action that has a result in the present.

He's broken his leg so he can't go on holiday.
There's been an accident on the main road, so let's take a different route.
They haven't called me, so I don't think they need me today.

Again, if we say when it happened, we use the past simple.

He broke his leg last week so he can't go on holiday.

However, we often use the present perfect with words like just, recently, already, yet and still.

We've recently started going to the gym.
She's already finished season one and now she's watching season two.
Have you checked your emails yet?

Do this exercise to test your grammar again.

Grammar test 2

Present perfect: Grammar test 2

Language level

Average: 4.1 (75 votes)

Hi DaniWeebKage,

Both of your sentences are correct. But if we were standing together watching this man playing tennis really well, I'd probably say 'He has been playing since he was a child' because presumably his playing tennis started when he was a child and has continued up until now.

It would also be correct to say what you suggested, though. There are many cases where both forms can be used and sometimes there's not even a big difference in meaning between them. Other times, only one is really correct.

This particular grammar point is one that takes time to learn well. I would suggest that you pay special attention for the present perfect in the texts you read and listen to so that you can analyse how it is used in them. Gradually, it will make more and more sense.

All the best,


The LearnEnglish Team

Submitted by Gloria Pérez on Sun, 27/09/2020 - 00:26

Although with some delay Peter, just to thank you for your second explanation on the use of for and over. Now I can say that I did understand the difference ;-)!

Submitted by emmanuelniyomugabo12 on Fri, 25/09/2020 - 23:12

That's I think we can proceed the course.

Submitted by Abdul Mukit on Tue, 15/09/2020 - 15:37

1)Who ate all my biscuits? Or, 2.Who has eaten all my biscuits? Which sentence is correct and why?

Hi Abdul Mukit,

Both are grammatically correct.

Sentence 1 (past simple) describes a finished and defined past time or state (yesterday, in this example).

  • Yesterday, I noticed that all my biscuits were gone. Who ate them all?


Sentence 2 (present perfect) describes a past action with a result in the present. It's often used to describe very recent events or news, as in this example.

  • Oh no! My biscuits are all gone! Who has eaten them?


So, which one we use depends on the context. If it is just a single sentence without context (as in your example), Sentence 2 is probably best because we have no information about any finished and defined past time.


Best wishes,


The LearnEnglish Team

Submitted by Hamdy Ali on Fri, 11/09/2020 - 07:52

I came across this sentence and I think the answer is have come .Am I right? And it is not homework.I want to make sure. Thank you very much. Choose the correct answer: They(come- came- have come) across a traditional coffee shop on their walk in the old part of the city.

Hello Hamdy Ali,

Both 'came' and 'have come' are possible correct answers here, and which one is better depends on the situation. If I had to choose only one answer, I would choose 'came' because it works in a much wider number of situations. 'have come' would probably only be appropriate if you were reporting something you just discovered, but even then many times people would probably say 'came'.

Hope this helps.

All the best,


The LearnEnglish Team

Profile picture for user Peter M.

Submitted by Peter M. on Sun, 30/08/2020 - 08:07

In reply to by Gloria Pérez


Hi Gloria Pérez,

Over is correct here. You could also say for.


We usually use over (+a period of time) when something happens intermittently, while for (+a period of time) suggests something happens continually. Thus, in your example I think over is the better choice.



The LearnEnglish Team

Submitted by Gloria Pérez on Thu, 03/09/2020 - 23:58

In reply to by Gloria Pérez

Thank you very much Peter! Actually, I used "on a daily basis" because I wanted to make clear that it was "every day". Then, I would have needed to use "for" to convey my meaning. In fact, I'm a bit confused now because, unless "on a daily basis" has another meaning different from "every day", I don't see how you can use "over" (that refers to something you do intermittently) with the time expression "on a daily basis" (that refers to something that you do everyday)... I know that you do not provide translations, but honestly speaking, I do not know how to translate/interpretate the sentence if I use "over"... well, it's not a big deal ;-)!