Repetição desnecessária no laço for

Olá pessoal! :smile_cat:
Sou novo forum
Estava seguindo as vídeos aulas do Neri para aprender java.
Segui tudo certo, sou inciante e estou aprendendo lógica de programação em java.
O meu problema é o seguinte.
Estou utilizando o laço de repetição “For”, para fazer uma tabuada que comece do 1 e vá até 10.
Na imagem a seguir irei mostrar o código e a execução.
Com a classe JOptionPane irei mostrar o resultado utilizando o comando showMessageDialog, porém na imagem que será mostrada utilizei o System.out.println, mas o mesmo erro ocorre nos dois.
imagens:


Em vez de mostrar a tabuada de uma vez só com as quebras linhas, há uma repetição dos valores.
Não sei oq fazer. Gostaria de um conselho.
Agradeço! :smile:

Mostre o resultado só no termino do laço:

for (){
 mensagem = mensagem+"";
}

System.out.println(mensagem);

System.out.println(num + " x " + i + " = " + (num*i) + "\n");

O problema está nessa linha:

mensagem= mensagem + "\n"+num+" x "+i+"= "+(num*i);

Pois a cada iteração do laço, a String mensagem está recebendo NOVAMENTE ela mesmo na atribuição, com isso, o conteúdo incluído anteriormente será repetido.

Você quer imprimir a tabuada do 1 até a tabuada do 10, é isso ? Nesse caso, você precisa de 2 loops for, um dentro do outro. No primeiro for você controla qual a tabuada está sendo calculada, e no loop mais interno você controla os números da tabuada.

Pessoal, obrigado a todos!
O problema foi resolvido.
No meu caso, o colega Franciscato estava certo.
Chamei a variável no termino do laço e obtive sucesso, tanto no System.out.println qnto no show.MessageDialog. :joy: :joy:
Vejam:

Com MessageDialog: