1、一个句子应该用什么时态只能取决于它需要表达的意思,以及它所处的语言环境。例如:

HespeaksEnglish.(一般现在时,说明动作发生的经常性。)

HespokeEnglishwhenhewasinNewZealand.(一般过去时,说明动作发生的时间。)

HeisspeakingEnglish.(现在进行时,说明动作正在进行。)

HehasspokenEnglishforthreeyearssincehecametotheUSA.(现在完成时,这里说明动作的总和。)

HehasbeenspeakingEnglishsincehecametotheUSA.(现在完成进行时,强调动作的连续性。)

2、在含有时间状语从句或条件状语从句的主从复合句中,如果主句的谓语动词是一般将来时,那么从句的谓语动词就只能用一般现在时来表示将来时;如果主句的谓语动词是过去将来时,那么从句的谓语动词就只能用一般过去时来表示过去将来时。

例如:Iwillnotplaytennisifitrainstomorrow.

Iwouldnotplaytennisifitrainedthenextday.

3、有些动词表示无法持续的动作,它们一般不宜用于进行时态中。这类动词常见的有:be,believe,consist,find,forget,hate,have,hope,hear,know,like,love,notice,prefer,remember,see,seem,smell,suggest,taste,understand,want,wish,sitdown,standup等等。

Be动词若是用于进行时态,可表示暂时、短暂的情况或表现。例如:

Tomisbeingagoodboytoday.汤姆今天很乖。

Heisbeingchildish.他这样做是耍孩子气。

Youarenotbeingmodest.你这样说不太谦虚。

4、关于现在完成时的时间状语问题

A.凡是"完成时态"都表示,不知道也不管动作发生的具体时间,所以在使用现在完成时的句子里,不可以带有表示具体过去时间的状语,如:yesterday,lastweek(month,year,etc.),twoweeksago,in1999等;但常和有些副词连用,如:just,before,already,often,never,ever,not…yet,always等等。

B.在以when提问的特殊疑问中不能用现在完成时。另外,ago不能用于现在完成时的句子里,因为它表示从现在算起的以前某个时间,属于表示具体过去时间的状语。但是可以用before来表示"以前"的意义,因为它只表示"以前",而不知什么时候的以前。

C.如果是不表示连续性的动词用于现在完成时的句子,不可以和以for表示的"一段时间"的状语连用。在这种情况下,应该用"Ithasbeen…;since…"的句式来表达。如:

Hehasjoinedthearmyforfiveyears.(错误)

Ithasbeenfiveyearssincehejoinedthearmy.(正确)