You could always use something like this, though I don't know how portable it is.
Code:
int JKFlipFlop::JKFlip() {
    int ipQs[][2] = {
        {
            ipQ,  /* 0 0 */
            0     /* 0 1 */
        },
        {
            1,    /* 1 0 */
            !ipQ  /* 1 1 */
        }
    }

    return ipQs[ipJ][ipK];
}
Okay, so maybe it's a bad idea.