He ____ English for 8 years by the time he graduates from the university next year

He ____ English for 8 years by the time he graduates from the university next year
A.will have learnet B.will have been learnt
答案给的B A也没错吧 A和B有啥区别呢 求解!!!

will have learned。
用将来完成时。因为后面有一个介词by加时间状语从句。用的是一般现在时表示将来,也就是截止到将来的某一个时间为止,必须用将来完成。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-24
应该是B,因为是一种 持续的 将来完成的状态,

所以用了 been。

本回答被网友采纳
相似回答