In this case, wouldn't you actually want || ?
If you have 1 && 1 it will loop, but if one of them changes it will stop - 1 && 0. But with 1 || 0 it will still continue if either one of them is still true, so it will "wait" until both are false, 1 || 1 = true, 1 || 0 = true, 0 || 0 = false.