Every nonzero element in a finite ring is either a unit or a zero divisor 
Let $R$ be a finite ring with unity. Prove that every nonzero element of $R$ is either a unit or a zero-divisor.

 A: Since one good cannonball deserves another, I'd like to provide a solution using right Artinian rings that aren't necessarily commutative.

Definitions:
A ring $R$ is called strongly $\pi$-regular if for all $x\in R$, chains of the form $xR\supseteq x^2R\supseteq x^3R\supseteq\dots \supseteq x^iR\supseteq\dots$ become stationary.
A ring is called Dedekind finite if $xy=1$ implies $yx=1$ for all $x,y\in R$.

Strongly $\pi$-regular rings were introduced by Kaplansky in the citation at the bottom. The definition is usually given in terms of "$\forall x\exists r(x^n=x^{n+1}r)$", but this is equivalent.
Moreover, it's been shown that $r$ can be chosen to commute with $x$, and so  the left-hand version of this definition is equivalent to this one.
It's obvious right Artinian rings are strongly $\pi$-regular, and it turns out they are Dedekind finite too.

Proposition: In a strongly $\pi$-regular Dedekind finite ring (in particular, right or left Artinian rings), each element is a unit or a zero divisor. (Zero being counted as a zero divisor.)

Proof: Let $x\in R$ be a nonunit, and let $n$ be minimal such that there exists $r$ that commutes with $x$ and $x^n=x^{n+1}r$. Since $x$ isn't a unit, $n\geq 1$. (Because if $1=xr$, $x$ would be a unit by Dedekind finiteness.)
Rearranging, we get $x(x^{n-1}-x^nr)=0=(x^{n-1}-x^nr)x$ since $r$ commutes with $x$. By minimality of $n$, $x^{n-1}-x^nr\neq 0$. Thus, $x$ has been demonstrated to be a two-sided zero divisor.

I. Kaplansky, Topological representations of algebras II, Trans. Amer. Math. Soc. 68 (1950), 62-75. MR 11:317
A: Let $a$ in $R$ be non-zero and suppose that $a$ is not a zero-divisor. 
First I will prove the cancellation property just for $a$. If $ab = ac$, then $ab-ac = 0$ and $a(b-c) = 0$. Since $a$ is not a zero-divisor, then $b-c = 0$ so $b = c$.
Consider the set $\{a^n\mid n \in\mathbb N\}=\{1,a^1,a^2,...\}$ 
Since $R$ is finite, we must have $a^i = a^j$ for some $i$, $j$ with $i \gt j$. Then since we have the cancellation property for $a$ and we have $a^{i-j}a^j = 1a^j$ (remember we have unity), then cancellation gives us $a^{i-j} = 1$. If $a = 1$ then $a$ is clearly a unit.
If $a\ne 1$, then $i-j \gt 1$ so we can factor out one copy of $a$ to get $a^{i-j-1}a^1 = 1$.
Thus the element $a^{i-j-1}$ is the multiplicative inverse of $a$, so $a$ is a unit.
Thus every nonzero element of this ring that is not a zero-divisor is a unit. In other words, every nonzero element is either a zero-divisor or a unit.
If we drop the finite condition then the result does not hold true. For example, $\mathbb Z$ is a commutative ring with unity, but $2$ is neither a zero-divisor nor a unit.
A: Your question is incomplete: you say you want to prove that every nonzero element of $R$ is "either a zero-divisor?"  If one inserts a unit or before zero-divisor then you get a true statement, so I'll assume for now that's what you meant.  
First, following a comment by Gerry Myerson on a recent related answer, let me divulge that for me zero is a zero-divisor.  I claim that this is just a convention that you should be able to translate back from if you see fit.
Next, note that if you have a family $\{R_i\}_{i \in I}$ of rings in which every element is either a unit or a zero-divisor, the same holds in the Cartesian product $R = \prod_{i \in I} R_i$.
In your case you can use the structure theorem for Artinian rings: $R$ is a finite product of local Artinian rings -- to reduce to the case in which $R$ is local Artinian.  Then the maximal ideal is nilpotent, so every nonunit is nilpotent and in particular a zero divisor.  
A: Hint $\,\ \overbrace{|R|<\infty\ \Rightarrow\ r^j=r^k}^{\rm\large  pigeonhole},\: j>k\ $ $\Rightarrow\ (r^{j-k}-1)\,\color{#0a0}{r^k}=0\ $ $\overset{\!\large \color{#0a0}{r\ \nmid\ 0}}\Longrightarrow\ \overbrace{r^{j-k}=1}^{\!\!\!\!\textstyle\color{#c00}r\,(r^i)\!=\!1^{\phantom{|^|}}\!\!\!\!\!\!}\, $ $\,\Rightarrow\, \color{#c00}r\, $ is a unit 
Remark $\ $ The idea generalizes: if a non-zero-divisor $\,r\,$ is algebraic then it divides the least degree coefficient of any polynomial of which it is a root. When said coefficient is a unit then so too is $\:r.\:$ Hence the result holds more generally for any ring satisfying a polynomial identity whose least degree coefficient is unit, e.g. for Jacobson's famous rings satisfying the identity $\rm\:X^n =\: X\:.$
P. M. Cohn has shown that every commutative ring $R$ can be embedded in a ring $S$ where every element of $S$ is either a zero-divisor or a unit of $R\,$ (he deems this a "rough zero-divisor dual" of fraction / localization extensions) 
A: In a finite commutative ring with unity, every element is either a unit or a zero-divisor. Indeed, let $a\in R$ and consider the map on $R$ given by $x \mapsto ax$. If this map is injective then it has to be surjective, because $R$ is finite. Hence, $1=ax$ for some $x\in R$ and $a$ is a unit. If the map is not injective then there are $u,v\in R$, with $u\ne v$, such that $au=av$. But then $a(u-v)=0$ and $u-v\ne0$ and so $a$ is a zero divisor.
For the noncommutative case, see this answer.
