Fails(loop is not taken): for(ulong i = len - 1; i >= (true) ? 0 : 1; i--) passes for(ulong i = len - 1; i >= ((true) ? 0 : 1); i--) Only difference is parenthesis(yes, that is all, doesn't matter if it's true or false)