Fors Encadeados

Estou começando a estudar Java, e talvez muitos aqui também estejam. Resolvi tentar explicar essa questão pois fiquei quebrando a cabeça por algum tempo, até que fizesse sentido para mim. Então vamos lá:

Imprima a seguinte tabela usando for encadeados:

1
2 4
3 6 9
4 8 12 16
n n2 n3 … n*n

A primeira coisa a se entender é como imprimir simultaneamente resultados na horizontal e vertical, para isso utilizaremos dois tipos de out.print:

System.out.print > imprime na mesma linha, por isso usaremos (+ " "), para dar espaço entre os resultados;
System.out.println > imprime uma nova linha

No meu caso utilizei 2 variáveis, “n” e “r”.

A variável n irá controlar quantas linhas eu quero que imprima (na vertical) e a variável r, o número de multiplicações que terá dentro daquela linha, como as duas variáveis começarão com o valor 1:

O número da linha será igual ao número de multiplicações que teremos dentro dela.

Linha 1, 1 multiplicação;
Linha 5, 5 multiplicações;
Linha 10, 10 multiplicações;

Isso será controlado pelo número de repetições do segundo for que é diretamente influenciado pelo número da variável n no primeiro for.

public class Exercícios1 {

	public static void main(String[] args) {

		for (int n = 1; n <= 10; n++) {
			for (int r = 1; r <= n; r++) {
	             System.out.print((n * r) + " ");
			}

As System.out.print((n * r) + " ") aspas são para dar espaço entre os resultados das multiplicações na mesma linha.

Beleza, como “ler” isso? Muito simples:

A variável n vai passar o número 1, pois ela inicia com 1, e a variável r vai também iniciar com 1, elas serão multiplicadas e o sistema irá imprimir o resultado 1.

System.out.println("");

Após isso, a variável r irá verificar se “r <= n”, no caso 2 não é menor ou igual 1, então ela fecha o loop da variável r e passa para o próximo da n.

A variável n vai passar o número 2, e a r iniciará em 1, ambas serão multiplicadas e o resultado será impresso “2”. A variável r vai somar mais um “++” e irá verificar se "r <= n (na linha 2 está sendo 2) é verdadeiro, então vai imprimir mais um resultado na horizontal, 4, ainda na segunda linha.

Após, irá somar mais um “++” à variável r e irá verificar se “r <= n”, agora esse boolean será falso pois 3 não é menor ou igual a 2, então o loop será fechado e a próxima linha da variável n somará mais 1, agora sendo 3.

A variável r vai multiplicar 1x, 2x, 3x e, na quarta, como “4 <= 3” é falso, pulará para a próxima linha da n.

Esse processo irá se repetir da seguinte forma, a variável r primeiramente vai verificar se a condição booleana é verdadeira "r <= n, fazer as multiplicações, e, após ela não ser mais verdadeira a variável n irá somar mais uma linha, até que n seja maior que 10, fazendo a condição ser falsa e o primeiro loop parar.

Só posso dizer que continue se esmerando.
Há problemas tão estressantes que vão exigir justamente isso: entender o comportamento.