You could use lookup tables. LUTs tend to be quite efficient, but some people find them counter-intuitive.
for (int v = 0; v < 8; v++) {
int[] lutX = new int[] {-1, -1, -1, -1, 1, 1, 1, 1};
int[] lutY = new int[] {-1, -1, -1, -1, 1, 1, 1, 1};
int[] lutZ = new int[] {-1, -1, 1, 1, -1, -1, 1, 1};
float x = lutX[v];
float y = lutY[v];
float z = lutZ[v];
}
Usually you should declare them statically outside your function.
You can deduce the LUTs from your OR-based logic by a logic like this:
If for v==0, the OR-logic adds 1 to X, set lutX[0] to 1.
Else set lutX[0] to -1