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).