Learn English – Difference between “Should” and “Should have”

grammar

I have a question regarding use of "should have" and "should". Can you please tell me which one is correct in the following context?

  • Ram slapped a man who was molesting a woman. He did what he should have done.

  • Ram slapped a man who was molesting a woman. He did what he should do.

I think both are correct.Can anyone who knows the language well please explain this?

Best Answer

This is an issue of tense agreement.

"he did" is past tense. "should have done." is also past tense, so it agrees and is proper

"should do" is present tense, so in your second sentence there is a tense mismatch between "he did" and "should do". A proper sentence ending in "do" would require you to change the verb tense (and the meaning), for example "He is doing what he should do."

English is a ridiculous language! Maybe Ram should slap whoever created our tense structures!

Related Topic