It mostly depends on how the compiler optimize the resulting code.
the if(.) is typically translated with a compare_to_zero instruction, followed by a conditional jump.
In your case, this will be
CMP(c1)
RETZ
CMP(c2)
RETZ
CMP(c3)
RETZ
or (with the else-s)
CMP(c1)
JNZ(a1)
RET
a1:CMP(c2)
JNZ(a2)
RET
a2:CMP(c3)
JNZ(a3)
RET
a3:RET
A second pass of the optimizer will see the chain of jumps, invert the then/else (and Z/NZ) skip off the jumps, being at the point a "jump to next", giving exactly the previous code.