have been to 和 have gone to 有什么区别?现在完成时高频易错点
引言
现在完成时里最容易考、也最容易错的:have been to 和 have gone to 有什么区别?还有 for/since 怎么用?瞬间动词能不能和 for 连用?
这篇文章把现在完成时的高频易错点一次讲清楚。
have been to vs have gone to
have been to = 去过(已经回来了)
```text
I have been to Beijing.
(我去过北京。——现在已经回来了)
She has been to Shanghai twice.
(她去过上海两次。——现在不在上海)
```
have gone to = 去了(还没回来)
```text
He has gone to Beijing.
(他去北京了。——现在还在北京或在路上)
Where is Tom? He has gone to the library.
(Tom 去哪了?他去图书馆了。——现在不在这儿)
```
对比:
```text
I have been to the park. 我去过公园(回来了)
He has gone to the park. 他去公园了(还没回)
```
for 和 since 的区别
for + 时间段
```text
for 3 years(三年了)
for 2 hours(两小时了)
for a long time(很长时间了)
```
```text
I have lived here for 5 years.(我在这里住了5年了。)
```
since + 时间点
```text
since 2020(自从2020年)
since last year(自从去年)
since I was born(自从我出生)
```
```text
I have lived here since 2020.(我从2020年就住在这里。)
```
转换:
```text
for 3 years = since 2023(假设现在是2026年)
```
瞬间动词不能和 for/since 连用
buy / borrow / leave / die / join 这些瞬间动词,不能和 for/since 连用,要换成延续性动词:
```text
错:I have bought the book for 3 days.
对:I have had the book for 3 days.(buy → have)
错:He has left here for 2 years.
对:He has been away for 2 years.(leave → be away)
错:She has borrowed the pen for a week.
对:She has kept the pen for a week.(borrow → keep)
```
常见转换
```text
buy → have(买 → 拥有)
borrow → keep(借 → 保存)
leave → be away(离开 → 不在)
die → be dead(死 → 死亡状态)
join → be in(加入 → 是成员)
```
一张表总结
```text
表达 意思
have been to 去过(已回)
have gone to 去了(未回)
for + 时间段 持续多久
since + 时间点 自从什么时候
buy → have 瞬间动词换延续性
leave → be away
```
总结
```text
been to = 去过回来了
gone to = 去了没回来
for + 段,since + 点
瞬间动词不能和 for 连用
```
```text
今日小抄:
have been to Beijing 去过北京(回来了)
have gone to Beijing 去北京了(没回)
for 3 years 持续3年
since 2020 从2020年起
buy → have 买了多久用 have
```