A code over Gaussian or Eisenstein integer residue ring is an additive group of vectors with entries in this integer residue ring which is closed under the action of constant multiplication by the Gaussian or Eisenstein integers. In this paper, we define the dual codes for the codes over the Gaussian and Eisenstein integer residue rings, and consider the construction of the self-dual codes. Because, in the Gaussian and Eisenstein integer rings, the uniqueness of the prime element decomposition holds in the same way as the one-variable polynomial rings over finite fields and the rational integer ring, we provide an efficient construction method for self-dual code generator matrices using that of moduli. As numerical examples, for Gaussian and Eisenstein integer rings, we enumerate and construct the self-dual codes for the actual moduli when the matrix size of the generator matrices is two.INDEX TERMS Codes over rings, dual codes, error-correcting codes, Euclidean domain. fj j R and over R/(r k r k ) g k R for