It is pretty easy to show that $f$ is continuous at $0$. For any $x_0 \neq 0$, by Bolzano-Weierstrass any neighbourhood of $x_0$ has two limit points, so $f$ is not continuous anywhere else.
If you don't want to use Bolzano-Weierstrass theorem, assume that $f$ is continuous at $0 \neq x_0 \in \mathbb{Q}$. That is,
$$ \forall \epsilon > 0, \exists \delta > 0\mid |x-x_0| < \delta \Rightarrow |f(x) - f(x_0)| = |f(x)| < \epsilon
$$
However, inbetween every two real number there exists an irrational number, so another $x'\mid |x' - x_0| < \delta$ exists with $|f(x')| \geq \epsilon$ when $\epsilon$ is smaller than $x'$. Therefore $f$ is not continuous at any rational $x_0$.
Similarly $f$ is not continuous at any two irrational numbers since