Sucesión de números en Java

/*
   Realizar un programa que calcule los números que se van obteniendo a partir de un número natural n siguiendo la siguientes reglas:
        Si n es igual a 1, acabar.
        Si el número n es impar, pasa a valer 3*n+1
        Si el número n es par, pasa a valer n/2

   El programa debe leer por la entrada estándar un número natural (se supone que es mayor que 0 y que cabe en 32 bits) y debe imprimir toda la sucesión de números  en una línea, el primero debe ser n y cada uno separado por un blanco del siguiente, que se obtienen a partir de él repitiendo las reglas anteriores hasta que valga 1. El número 1 no debe ir seguido de un blanco y debe finalizar la línea de salida.

Ejemplo:
Entrada:
22
Salida:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
*/
public class TresEnUno{

    public static void main (String[] args){
java.util.Scanner scan = new java.util.Scanner(System.in);

int n = scan.nextInt();

if ( n==1 ){
   System.out.println(1);
} else { //Supongo n > 1
   do{
System.out.print(n+" ");

if (n % 2 == 1){
   n = 3*n+1;
} else {
   n = n/2;
}
   } while (n>1);
   System.out.println(1);
}
    }
}