Dúvida - extrair digitos de número ímpar

Olá.

Podia ajudar-me?
Antes de mais peço desculpa pela dúvida de “noob” que vou colocar mas eu estou a começar no java.
Eu queria fazer um programa em que eu insiro um número ímpar e ele extrai os dígitos do mesmo e múltiplica-os uns pelos outros apresentando no final o produto de todos os dígitos que o constituem.
O meu código é este:

public static void main(String[] args) { Scanner ler = new Scanner(System.in); int n, d, tot = 1, tmp; System.out.println("Insira um número ímpar: "); do { n = ler.nextInt(); if (n % 2 == 0) { System.out.println("Erro!\nInsira um número ímpar: "); } } while (n % 2 == 0); tmp = n; while (tmp != 0){ System.out.println("extrair");//meti esta linha para verificar até onde o programa ía d = (tmp % 10); if (d != 0) { tot = tot * d; } } System.out.println("Número = " + n + "\nResultado = " + tot); } }

Mas o problema (até agora) está na validação do ciclo while(tmp !=0) pois o programa não ultrapassa esse ciclo.
Podem ajudar-me?
Obrigado pelo vosso tempo :wink:

Cumprimentos

Dentro daquele while você não altera o valor de temp. Então, quando é que temp será == 0 para o while terminar?

Faltou fazer

tmp /= 10;

em algum lugar por aí…

Muito obrigado Vini :wink: