Regarding performance, this could conceivably vary based on compiler, but in general there should be no difference.  See answer here:
Performance difference of "if if" vs "if else if"
In terms of which is more correct, that is entirely dependent on intent and logic involved. In your example above, it's perfectly correct to just use "if" (no "else") because each condition early exits, and there is no possibility of ambiguity.  However, if your conditions did not early exit, then a single value of x could match multiple conditions.  So correctness is based on whether the logic in each condition should be compounded so that for an x with a certain value, all the logic in each matching condition should be applied. Or, whether only one set of logic should run in response to the first condition met (in that case, you would have to use "else if"). I have never encountered any other reason to choose between "if" and "else if" other than intent and whether each condition is distinct and non-overlapping, or cumulative in effect.