现在完成时:规则、例句与使用时机

2025/06/01

现在完成时(Present Perfect)是连接过去与现在的桥梁。它用来描述在过去不确定时间发生的动作或经历、从过去开始持续到现在的状态,或者对现在产生影响的近期事件。对于中国英语学习者来说,这个时态是最具挑战性的语法点之一,因为中文没有完全对应的时态结构。但一旦你理解了它的逻辑,它就会成为表达自己的有力工具。

如何构成现在完成时

现在完成时由助动词 have/has 加上主动词的过去分词构成。

肯定句公式:

主语助动词过去分词例句
I / You / We / Theyhave ('ve)过去分词I have visited Paris.(我去过巴黎。)
He / She / Ithas ('s)过去分词She has visited Paris.(她去过巴黎。)

过去分词形式:

  • 规则动词:与过去式相同(work → worked, play → played)
  • 不规则动词:必须记忆(go → gone, see → seen, eat → eaten, write → written, take → taken, do → done, be → been)

否定句公式:

主语助动词 + Not过去分词例句
I / You / We / Theyhave not (haven't)过去分词We haven't finished yet.(我们还没完成。)
He / She / Ithas not (hasn't)过去分词He hasn't finished yet.(他还没完成。)

疑问句公式:

助动词主语过去分词例句
HaveI / you / we / they过去分词Have you eaten lunch?(你吃过午饭了吗?)
Hashe / she / it过去分词Has she eaten lunch?(她吃过午饭了吗?)

什么时候使用现在完成时

现在完成时有几个独特的用法,每一个都有其内在逻辑。

1. 人生经历(不明确具体时间)

谈论一生中是否做过某事时,不需要说明具体什么时候做的。

  • I have traveled to twelve countries.(我去过十二个国家。)
  • She has never tried sushi.(她从没吃过寿司。)
  • Have you ever met a famous person?(你见过名人吗?)

2. 近期动作对现在的影响

动作刚刚发生,其结果在当下仍然相关。

  • I have lost my keys.(我把钥匙弄丢了。——现在还没找到。)
  • She has broken her leg.(她摔断了腿。——腿现在还没好。)
  • Oh no, I have forgotten his name!(糟糕,我忘了他的名字!)

3. 从过去持续到现在的动作(搭配 for/since)

情况从过去开始,在说话时仍然成立。

  • We have lived in this house for ten years.(我们在这所房子里住了十年了。)
  • He has worked here since 2018.(他从2018年开始就在这里工作。)
  • I have known her since we were children.(我从小就认识她。)

4. 未结束的时间段(today, this week, this year)

当时间段还没有结束时,使用现在完成时。

  • I have had three meetings today.(我今天开了三个会。——今天还没结束。)
  • She has written two reports this week.(她这周写了两份报告。——这周还没结束。)

5. 搭配 just, already, yet, still

这些副词是现在完成时的经典搭档。

  • I have just finished my homework.(我刚完成作业。)
  • She has already left.(她已经走了。)
  • Have you called him yet?(你给他打电话了吗?——到目前为止。)
  • They still haven't replied.(他们仍然没有回复。——预期应该回复了。)

常见错误

现在完成时是一个经常出错的语法点。注意以下错误将大大提高你的准确性。

错误正确写法原因
I have went to London.I have gone to London.应使用过去分词 gone,而非过去式 went。
She has visit her mother.She has visited her mother.has 后面必须使用过去分词。
I have seen him yesterday.I saw him yesterday.具体的过去时间需要使用一般过去时。
He have finished.He has finished.第三人称单数用 has。
We lived here since 2010.We have lived here since 2010.since 表示与现在的连接,需要用现在完成时。
Did you ever eat snails?Have you ever eaten snails?人生经历使用现在完成时。

现在完成时 vs. 一般过去时: 关键区别在于时间的具体性。当你说明了某事发生的具体时间(yesterday, last week, in 2015)时,使用一般过去时。当时间不确定或者动作与现在有关联时,使用现在完成时。

  • I have read that book.(我读过那本书。——人生中的某个时候,什么时候不重要。)
  • I read that book last month.(我上个月读了那本书。——具体时间。)

练习例句

注意每个句子如何将过去与当下连接起来:

  1. Have you ever been to Australia?(你去过澳大利亚吗?)
  2. She has changed jobs three times this year.(她今年换了三次工作。)
  3. I haven't seen that movie yet, but I want to.(我还没看那部电影,但我想看。)
  4. We have known each other since university.(我们从大学就认识了。)
  5. He has just arrived at the airport.(他刚到机场。)
  6. They have already eaten dinner, so they are not hungry.(他们已经吃过晚饭了,所以不饿。)
  7. My English has improved a lot since I started practicing every day.(自从我每天练习以来,我的英语进步了很多。)
  8. I have never met anyone so kind.(我从没遇到过这么善良的人。)

快速总结

  • 使用场景: 人生经历、近期动作对现在的影响、从过去持续到现在的状态、未结束的时间段。
  • 肯定句: 主语 + have/has + 过去分词。
  • 否定句: 主语 + have/has + not + 过去分词。
  • 疑问句: Have/Has + 主语 + 过去分词?
  • 关键信号词: ever, never, already, just, yet, still, for, since, so far, recently, today, this week。
  • 切记: 永远不要将现在完成时与 yesterdayin 2010 等具体过去时间搭配使用,那些情况需要用一般过去时。

现在完成时是连接过去与现在的桥梁。一旦你理解了它始终与当下保持联系这一核心逻辑,在现在完成时和一般过去时之间做选择就会变得清晰得多。多多练习在自己的句子中使用 for, since, ever, never, just, already, yet,来提升对这个重要时态的熟练度。

相关语法指南

快速学英语

快速学英语