If I could speak English, I could have got a job这句话有语法问题吗?

对过去的虚拟从句为什么不用 could have

If I could speak English, I could have got a job.
如果我能说英语,或许我就能有一份工作。
这句话语法上没有问题,不过是对现在的一种假设。注意have意为"拥有"时是实义动词,have got只是have的变体,不是完成时态。另外,两个could含义不同,条件从句的could是情态动词过去时态表能力,结果主句的could更偏向于虚拟形式的时态助动词。由于speak English(会说英语)本身含能力因素,为避免could重复,这样说更好一些:If I spoke English, I could have got a job. 或 If I spoke English, I would have got a job. 后者最常见。
如果是对过去假设,则说 If I had spoken English, I would have had a job. 如果我会说英语的话,我早就有一份工作了。
美语喜欢说:If I would have spoken English, I would have had a job.
如果是对将来假设,则说 If I spoke English, I would have got a job. (形式同假设现在)
或者 If I would speak English, I would have got a job.

或者 If I were to speak English, I would have got a job.
上述三种表述将来的虚拟形式可能性依次降低,were to最渺茫。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-19
没有问题,你在说一个 状态延续 或者是 不局限于之前特定状态下 的虚拟条件
you couldn't speak english, still you can't. that is why u didn't get a job at the time.
举一个看上去状态不是那么延续的例子,
if i had an opportunity, i would've gone backpack to europe.
you didn't have an opportunity, and you still seem to not have one.

你说的这句话你如果写成,if i coulda spoken english, i coulda gotten a job. 这句话就是暗指你如果以前的某个时候可以说英语,你就能得到一个工作。有可能你之后会了,没有提到,你只表示了你暗指的某个过去的特定时间。追问

If I wore more clothes, I would not have got cold.如果我想说的情况是我现在已经感冒了,而且也没有穿上跟多的衣服,是不是可以这样说?

追答

wear more clothes, 这句话没有英语母语的人这么说,你可以说 put on some more clothes, 但是这种情况是对方没穿,或者是穿少了,你要他多穿点,可能是太露了什么。不是说要他们多穿点保暖。这时候你可以说 wrap up warm/ put on an extra layer,另外 ...have gotten a cold 你需要 a 在这里,不过这个句子很对应你说的情况。

本回答被提问者采纳
第2个回答  2021-01-19
虚拟语气,语法没问题追问

很好奇为什么不是 if i could have,这不才是对过去的虚拟吗

第3个回答  2021-01-19
作为虚拟语气,正确的表达是:
If I could speak English, I would have got a job.追问

我没觉得用could有什么不对的,为什么一定要用would,两个意思。

追答

这就是英语语法和意境规定的。

追问

你的意思是语法规定对了虚拟语气里只能用 would?