宙ぶらりんelse問題(dangling else problem)

宙ぶらりんelse問題(dangling else problem)[wikipedia]。 if文でthen節にifが重なる場合、続くelse節が前者のifのものか、 後者のifものか決定できる要素がない。調べもの中に見つけたのでメモ.
    if (a) if (b) c; else d;
つまり上の文(C言語例)だと
    if (a) {
        if (b) c; else d;
    }
    if (a) {
        if (b) c;
    }
    else d;
どちらかわからない。 通常、then節のブロックを明示してどちらか決定する。