APL (Dyalog), 68 76 bytes
Requires ⎕IO←0 which is default on many systems. Prompts for input and expects a single character representing the operand.
t←'|'=w←⎕ (w,n),n⍪⍉⍣t∘.{(⍺w⍵≡0'*'0)∨(t∧⍵≡0)∨⍺w≡0'÷':⍬ n∊⍨r←⍵(⍎w)⍺:r ⍬}⍨n←⍳10 Much of the code is to circumvent that APL's results for ÷0 and 0*0 and to counteract that APL's modulo (|) has its arguments reversed compared to most other languages. Would have been only 41 bytes otherwise. 41 bytes otherwise:
w←⎕ (w,n),n⍪∘.{0::⍬ ÷n∊⍨r←⍵(⍎w)⍺:r}⍨n←⍳10