One of the problems that my students will stumble upon every year is trying to create or initialize variables within an `if`/`else` block. Why, oh why, can't they perform an operation like this? if (someBooleanCondition){ int x = 7; } else { int x = 0; } System.out.println(x); After all, they reason, `x` has been created and initialized *no matter what*. This year, I discovered a nice way of explaining why this operation does not work. I will be posting my answer below, and I am also curious to see if others have different explanations that they use with their students (or corrections to mine).