I'm working through Gallian's Ch. 13 on Integral Domains, the second chapter in the book dealing with topics concerning rings. I feel this was a good book on intro group theory (which is what a lot of universities use it for), but I feel it's a little dicey on intro ring theory content (I doubt anybody uses it for that).
Anyways the ring theory part is a little bare, and so I didn't have much to work with in proving every element of $Z_{n}$ is a unit or a zero divisor. This book proves the more general result about 'every finite commutative ring' afterwards so I can't use that either. I think I have a solid alternative proof (using kind of a pigeon-hole argument) though even without all the fancy techniques the other solutions out there have. Would love for comments and critiques, especially on the second half of it.
Let $n\geq4$ (the $n<4$ cases are trivial; moreover they are prime and handled elsewhere).
First suppose some arbitrary $k\in\mathbb{Z}_{n}$ is both a unit and a zero divisor. Hence there exists some $l\in\mathbb{Z}_{n}\setminus \{0\}$ such that $kl=lk=0$. Now since $k$ is a unit, we have that $k^{-1}\in\mathbb{Z}_{n}$. It follows that \begin{align*}0 &=k^{-1}0 \\ &=k^{-1}kl \\ &=l,\end{align*}a contradiction. Next suppose $k\in\mathbb{Z}_{n}\setminus \{0\}$ is neither a unit nor a zero-divisor. Hence for all $l\in\mathbb{Z}_{n}\setminus\{0,1\}$, we have $$kl\neq 0,\text{ (since $k,l\neq 0$, and since $k$ is not a zero-divisor)}$$ $$kl\neq 1, \text{ ($k$ is not a unit)}$$ $$kl\neq k. \text{ ($l\neq 1$)}$$Hence the $n-2$ remaining choices for $l \in \mathbb{Z}_{n}\setminus \{0,1\}$ can yield at most $n-3$ unique products $kl\in \mathbb{Z}_{n}\setminus \{0,1,k\}$. In any case we must have that there exist integers $l_{1}>l_{2}\in\mathbb{Z}_{n}\setminus \{0,1\}$ such that $kl_{1}=kl_{2}$. It follows that \begin{align*}0 &= kl_{1}-kl_{2} \\ &= k(l_{1}-l_{2}),\end{align*}which is impossible since the nonzero element $k$ is not a zero divisor and $l_{1}-l_{2}>0$ by construction. Thus a contradiction. QED.