Boa tarde,
Temos o seguinte código, e podemos analisar que a variável x é instanciada com o valor 13, passamos pelo Syso(System.out.println) mostrando "Iniciando..", e ele entra no fluxo de repetição do while, repare que não é trocada o valor do x e ele passa por outro Syso(System.out.println), chamando a váriavel x mostrando 13>, conforme acontece o fluxo a variável x é sendo alterada x = x / 2; ou x = 3 * x + 1;
int x = 13;
System.out.println("Iniciando..");
while (x != 1) {
System.out.print(x + ">"); <<< chamou antes da condição alterar o valor
if (x % 2 == 0) {
x = x / 2;
} else {
x = 3 * x + 1;
}
}
System.out.println(x);
}
A solução desse problema é:
int x = 13;
System.out.println("Iniciando..");
while (x != 1) {
if (x % 2 == 0) {
x = x / 2;
} else {
x = 3 * x + 1;
}
System.out.print(x + ">"); <<<<<<< - correto
}
System.out.println(x);
}
temos que mostrar o valor depois da condição - System.out.print(x + ">");