5 exercises — master mixed conditionals for postmortem counterfactuals, incident analysis, and hypothetical reasoning.
0 / 20 completed
1 / 20
Which sentence is a correctly formed mixed conditional (one clause past, one clause present)?
Option B is the classic mixed conditional: "if we had set up" (past unreal — Type 3 if-clause) + "we wouldn't be struggling" (present unreal result — Type 2 main clause). This expresses a past failure to act that is still affecting the present. Option A is pure Type 3 (both clauses in past). Option C is Type 1 (real present/future). Option D is Type 2 (both clauses in present unreal).
2 / 20
The incident analysis reads: "The system is not resilient to single-node failure. The outage lasted 4 hours." Which mixed conditional correctly connects these facts?
This is a Type 2→3 mixed conditional: "if the system were more resilient" (present unreal state — it is not resilient now/was not then) + "the outage would not have lasted 4 hours" (past result — what would have happened during the incident). Option A uses "was" (non-standard for unreal conditionals — "were" is preferred) and wrong main clause. Option C reverses the time references. Option D mixes indicative present ("is") with unreal past — inconsistent.
3 / 20
Complete the postmortem counterfactual: "If we _____ a chaos engineering practice, we _____ about this failure mode before it reached production."
Pure Type 3 conditional: "If we had had [past perfect]" + "we would have known [would + have + past participle]". Both clauses refer to the past. "Had had" is the past perfect of "have" — "to have a practice" → "had had a practice". Common error: "if we had a practice" (simple past, not past perfect — this implies current state). "Would know" (Type 2 main clause) refers to present, creating a mixed conditional with a different meaning.
4 / 20
What is the difference in meaning between these two postmortem sentences? A: "If we had monitoring in place, we would have detected the failure." B: "If we had monitoring in place, we would detect failures like this."
Sentence A ("would have detected") uses Type 2→3 mixed conditional or could be read as pure Type 3 — in any case it refers to a specific past event that was missed. Sentence B ("would detect") is a Type 2 conditional referring to a present/future general capability — it makes a claim about what the system would do now or in the future if monitoring were present. This distinction is crucial in postmortems that contain both retrospective analysis and forward-looking action items.
5 / 20
A junior engineer writes: "If we would have implemented blue-green deployments, we wouldn't have had this rollback problem." What is the error and the correct form?
The classic Type 3 conditional error: "would have" in the if-clause is non-standard in grammatical English. The if-clause takes past perfect ("had implemented"), not "would have implemented". The main clause takes "would have + past participle" ("wouldn't have had"). The corrected sentence: "If we had implemented blue-green deployments, we wouldn't have had this rollback problem." This error is extremely common among non-native English speakers.
6 / 20
Code Review Comment: 'The `validateUser()` function isn't handling edge cases. If the user ID wasn't present, it throws an error and halts processing. We should have anticipated this scenario and added a default value to prevent the crash.' Which mixed conditional best reflects this critique?
This question tests understanding of 'if + past perfect' conditionals used to suggest improvements. The reviewer isn't criticizing the *present* design; they are commenting on a potential future problem and proposing a solution to avoid it. The key is recognizing that the 'if' clause refers to a hypothetical situation that might have occurred in the past or could occur in the future, justifying the suggested change.
7 / 20
Slack Message: 'Hey @john.doe, just ran some diagnostics on the API endpoint. If the request body doesn't contain a valid `customer_id`, it returns a 400 error – we should add documentation to highlight this requirement.' Which mixed conditional best captures John's intention?
This scenario tests recognizing how mixed conditionals can describe potential problems and propose solutions. The 'if' clause refers to a past condition (the missing `customer_id`) that led to a specific error (400). John is proactively suggesting documentation as a way of preventing this issue from occurring again.
8 / 20
PR Description: 'The new deployment script now utilizes Ansible to handle the rollback process. If the initial deployment fails, Ansible will automatically revert to the previous version.' Which mixed conditional most accurately describes this automated behavior?
This question focuses on using mixed conditionals to explain how systems react to failures. The 'if' clause represents the *condition* – a failed initial deployment – which then leads to the *result* – an automatic rollback. It's about predicting and preparing for potential problems.
9 / 20
Standup Update: 'We're investigating a spike in CPU usage on the database server. If we hadn't optimized the query cache, the load would have been significantly higher.' Which mixed conditional best represents this explanation?
This question tests the correct use of mixed conditionals to explain cause and effect. The 'if' clause describes a past condition – the lack of an optimized query cache – which directly contributed to the current problem (high CPU usage). This highlights how conditional clauses can be used when discussing performance issues or system behavior.
10 / 20
Code Review Comment: 'The `handleRequest()` function doesn't log any errors. If an error occurs during processing, it silently fails, making debugging very difficult.' Which mixed conditional best describes the issue?
This question tests understanding of how mixed conditionals can suggest improvements based on anticipated problems. The 'if' clause refers to a hypothetical situation – an error occurring during processing – and highlights the potential negative consequence (difficulty in debugging). It's about proactively addressing vulnerabilities.
11 / 20
Code Review Comment: 'The `validateUser()` function isn't handling edge cases. If the user ID wasn't present, it throws an error and halts processing. We should have anticipated this scenario and added a default value to prevent the crash.' Which mixed conditional best reflects this critique?
This question tests understanding of 'if + past perfect' conditionals used to suggest improvements. The reviewer isn't criticizing the *present* design; they are commenting on a potential future problem and proposing a solution to avoid it. The key is recognizing that the 'if' clause refers to a hypothetical situation that might have occurred in the past or could occur in the future, justifying the suggested change.
12 / 20
Slack Message: 'Hey @john.doe, just ran some diagnostics on the API endpoint. If the request body doesn't contain a valid `customer_id`, it returns a 400 error – we should add documentation to highlight this requirement.' Which mixed conditional best captures John's intention?
This scenario tests recognizing how mixed conditionals can describe potential problems and propose solutions. The 'if' clause refers to a past condition (the missing `customer_id`) that led to a specific error (400). John is proactively suggesting documentation as a way of preventing this issue from occurring again.
13 / 20
PR Description: 'The new deployment script now utilizes Ansible to handle the rollback process. If the initial deployment fails, Ansible will automatically revert to the previous version.' Which mixed conditional most accurately describes this automated behavior?
This question focuses on using mixed conditionals to explain how systems react to failures. The 'if' clause represents the *condition* – a failed initial deployment – which then leads to the *result* – an automatic rollback. It's about predicting and preparing for potential problems.
14 / 20
Standup Update: 'We're investigating a spike in CPU usage on the database server. If we hadn't optimized the query cache, the load would have been significantly higher.' Which mixed conditional best represents this explanation?
This question tests the correct use of mixed conditionals to explain cause and effect. The 'if' clause describes a past condition – the lack of an optimized query cache – which directly contributed to the current problem (high CPU usage). This highlights how conditional clauses can be used when discussing performance issues or system behavior.
15 / 20
Code Review Comment: 'The `handleRequest()` function doesn't log any errors. If an error occurs during processing, it silently fails, making debugging very difficult.' Which mixed conditional best describes the issue?
This question tests understanding of how mixed conditionals can suggest improvements based on anticipated problems. The 'if' clause refers to a hypothetical situation – an error occurring during processing – and highlights the potential negative consequence (difficulty in debugging). It's about proactively addressing vulnerabilities.
16 / 20
Code Review Comment: 'The `validateUser()` function isn't handling edge cases. If the user ID wasn't present, it throws an error and halts processing. We should have anticipated this scenario and added a default value to prevent the crash.' Which mixed conditional best reflects this critique?
This question tests understanding of 'if + past perfect' conditionals used to suggest improvements. The reviewer isn't criticizing the *present* design; they are commenting on a potential future problem and proposing a solution to avoid it. The key is recognizing that the 'if' clause refers to a hypothetical situation that might have occurred in the past or could occur in the future, justifying the suggested change.
17 / 20
Slack Message: 'Hey @john.doe, just ran some diagnostics on the API endpoint. If the request body doesn't contain a valid `customer_id`, it returns a 400 error – we should add documentation to highlight this requirement.' Which mixed conditional best captures John's intention?
This scenario tests recognizing how mixed conditionals can describe potential problems and propose solutions. The 'if' clause refers to a past condition (the missing `customer_id`) that led to a specific error (400). John is proactively suggesting documentation as a way of preventing this issue from occurring again.
18 / 20
PR Description: 'The new deployment script now utilizes Ansible to handle the rollback process. If the initial deployment fails, Ansible will automatically revert to the previous version.' Which mixed conditional most accurately describes this automated behavior?
This question focuses on using mixed conditionals to explain how systems react to failures. The 'if' clause represents the *condition* – a failed initial deployment – which then leads to the *result* – an automatic rollback. It's about predicting and preparing for potential problems.
19 / 20
Standup Update: 'We're investigating a spike in CPU usage on the database server. If we hadn't optimized the query cache, the load would have been significantly higher.' Which mixed conditional best represents this explanation?
This question tests the correct use of mixed conditionals to explain cause and effect. The 'if' clause describes a past condition – the lack of an optimized query cache – which directly contributed to the current problem (high CPU usage). This highlights how conditional clauses can be used when discussing performance issues or system behavior.
20 / 20
Code Review Comment: 'The `handleRequest()` function doesn't log any errors. If an error occurs during processing, it silently fails, making debugging very difficult.' Which mixed conditional best describes the issue?
This question tests understanding of how mixed conditionals can suggest improvements based on anticipated problems. The 'if' clause refers to a hypothetical situation – an error occurring during processing – and highlights the potential negative consequence (difficulty in debugging). It's about proactively addressing vulnerabilities.
What will I practise in "Mixed Conditionals in Technical English — Incident Analysis and Hypothetical Reasoning — Grammar Exercise"?
Practise mixed conditionals for incident analysis and hypothetical reasoning: past cause with present result, present cause with past result.
How many exercises are in this module?
This module has 20 multiple-choice exercises, each with instant feedback and a full explanation of the correct answer.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to use with no account, sign-up, or paywall.
Do I need to create an account to do these exercises?
No account is required. Just click an option to answer — your score for this session is tracked automatically in the progress bar above.
What happens if I choose the wrong answer?
You'll immediately see which answer was correct, plus a full explanation covering the grammar rule and reasoning behind it — mistakes are where most of the learning happens.
Can I retry the exercises if I want a higher score?
Yes — use the "Try again" button on the results screen to reset and go through all the questions again.
Is my progress saved if I close the page?
No. Progress is tracked only for your current visit; reloading or leaving the page resets the counter. This keeps the exercise simple and account-free.
Where can I find more Grammar exercises?
Browse the full Grammar hub for related drills, or check the "Next up" link below to continue with a connected topic.
How is this different from reading an article on the same topic?
Articles explain grammar rules in prose; this exercise tests and reinforces those rules through active recall with immediate feedback — the two work best together.
Who writes these exercises?
Every exercise is written by the CoderSlingo team, drawing on real workplace English used in IT roles, then reviewed for accuracy and clarity.