質問: 英語の現在完了 例文の「私達は長崎に行ったことがあります。」they have been to nagasaki.とあります。 これは経験を表す現在完了です。 現在完了ならばbeenのところをgoneの過去分詞に変えてはいけないのでしょうか。 そういうもので覚えろと言われたのですが、納得できません。 それと、they have lived in japan for five years.は「5年間日本に住んでいます」で 五年前から現在まで五年間住んでいるということだけを述べていて、未来のことはわからないということでいいのでしょうか。 sinceならば五年前から今も続いているということですよね 回答お願い致します。
回答: have gone to ~は「行ってしまった」とするのが受験英語。 実際は「行ったまま(まだそこにいる)」あるいは「向かっている最中(ここは出た)」 で帰ってきていません。 have been to ~は「行って帰ってきた(ところだ)」という完了, あるいは「行ったことがある」という経験。 いずれにせよ,いったん行って今は帰ってきている。 帰ってきて初めて経験。 ただ,before とか,never とか,once とか経験を表す語があれば, 経験と取られます。 さらには,アメリカ英語では have gone to ~で経験になります。 まあ,学校文法では have been to ~を使ってください。 後の質問についてはその通りで, 現在完了の継続というのは,今までのことを述べています。 「5年住んできた」であり,今後のことはわかりません。 since も for も今までという点では同じ。 ただ,since の後には yesterday, last year のような語がきます。 (since ~ ago は不自然で使いません) for の後には five years のような期間がきます。 日本語では「5年前から」が自然。 英語ではこれを for five years で表します。 何が自然かは言語によって違います。 日本語で「5年前から」の感覚で since five years ago でいい とはなりません。 とにかく,for five years を現在完了で用いれば 「5年前から今までの5年間」です。 「今も続いている」 結局,今まで,というのは since も for も同じ。 現在完了を使っている以上,あくまでも「今まで」 それは現在完了進行形にしても同じ。