Главное различие между ними в том, что if выражает условие (может случиться, а может и нет). А when мы используем, когда знаем, что ситуация точно произойдёт.
If — если (возможно)
Используем, когда результат зависит от условия:
- оно может случиться (First Conditional),
- маловероятно (Second Conditional),
- уже не случилось (Third Conditional).
If it rains, we’ll stay home. = Если пойдёт дождь, мы отправимся домой. (Возможно, дождь пойдёт, а возможно — нет)
If she had called, I would have answered. = Если бы она позвонила, я бы ответил. (Но она не позвонила — сожаление)
When — когда (точно произойдёт)
Используется для неизбежных (Zero Conditional) и запланированных (First Conditional) событий.
When the sun sets, it gets dark. = Когда солнце заходит за горизонт, становится темно. (Это всегда происходит — Zero Conditional)
When I get home, I’ll call you. = Когда я вернусь домой, я позвоню. (Я точно вернусь домой — First Conditional)
Чтобы было ещё понятнее, рассмотрим на примере одной и той же ситуации:
If I see Tom, I’ll invite him over. = Если увижу Тома, приглашу его в гости. (Может, увижу, а может — нет)
When I see Tom, I’ll invite him over. = Когда я увижу Тома, то позову его в гости. (Я точно его увижу)