回答

✨ ベストアンサー ✨

正しくない内容を含んだ回答をなさっている方がいらっしゃいましたので、そこも含めて解説していきます。

(1)から順に見ていきます。

----------・----------・----------・----------

(1)★Point: 過去形と現在完了形の区別

現在完了形というのは、
 過去に起こったことが現在と結びついている
ことを示す表現であって、あくまで
 過去と結びついた現在
の話をする表現です。

ですから、when I lived in Osaka three years agoという
 明確に過去を表す語句
とは一緒に使われません。

これをhave beenにしても同様で、明確に過去を表す語句(when以下)があるので、現在完了形は不適切ですね。

問題なのはhave goneかhave beenかではなく、現在完了形が使われていることです。

過去形と現在完了形の区別は極めて重要です。
しっかりと押さえておきましょう!

----------・----------・----------・----------

(2)
have been doneだと、これは
 受け身
となってしまいます。

あくまで
 私が宿題をする
のですから、能動であり、
 have been doing
と「現在完了進行形」が適切です。

現在完了進行形で
 動作の継続
を表すことができます。

今回でしたら
 (宿題を)する
という動作の継続ですね。

動詞が2つとかの話ではないです。
能動と受動の問題です。

ちなみに状態の継続は現在完了形を用います。

動作動詞と状態動詞の区別も押さえておきましょう!

----------・----------・----------・----------

(3)
Be〜othersは文の主語として働いていますので
 名詞
の働きを持たなければなりません。

ですから、「Be」と動詞の原形だけ置いてもダメで、動名詞(〜ing)または不定詞(to 〜)を使う必要があります。

Being kind to〜とするか、To be kind to〜としなければなりません。

----------・----------・----------・----------

(4)
これは
 kept us waiting
が適切です。

これも能動と受動の問題ですね。
動詞が2つとかは関係ないです。

目的語(O)と分詞(C)の間の関係に着目してください!
 We were waiting
という関係が成り立っていますので、現在分詞が適切です。

----------・----------・----------・----------

(5)
これは
 時や条件を表す副詞節中では、未来のことも現在時制
というルールがあるため、will beは不適切です。

ifがあるから現在形というのは正しくなく、
 ①時や条件を表す
 ②副詞節である
という2つが必要になります。

ですから、ifがあっても名詞節などであればwillを使うことが可能です。

今回の場合は
 ①if〜とあるように、条件を表している
 ②副詞節である
という条件を満たしているので、上記のルールが適用されるわけです。

「ifだから」とか「whenだから」といって、すぐ現在形だとしてしまうのは完全に足元を掬われてしまいます。
副詞節か名詞節かなどの見分けも重要になってきます。

とても丁寧な回答ありがとうございます!
助かりました!

この回答にコメントする
疑問は解決しましたか?