Duvida em erro

Ola a todos, gostaria de uma ajudinha aqui. Me digam o que está dando errado nesse loop infinito.

O exercicio é esse:

Escreva um programa que, dada uma variável x (com valor 180, por
exemplo), temos y de acordo com a seguinte regra:
se x é par, y = x / 2
se x é impar, y = 3 * x + 1
imprime y
O programa deve então jogar o valor de y em x e continuar até que y tenha o valor final
de 1. Por exemplo, para x = 13, a saída será:40 ­>20 ­>10 ­>5 ­>16 ­>8 ­>4 ­>2 ­>1

Meu codigo :

class exemplo{

public static void main(String args[]){

   int x=13,y;


   while(x>=1){

   if(x%2==0){

       y=x/2;
       x=y;
       System.out.println(x);

       }

       else if(x%2==1) {

       y=3*x+1;
       x=y;
       System.out.println(x);

       }


       }

       }

       }
         }

Abraço a todos !!

vc esta usando o if else de forma errada

Escreva assim:

class Exemplo{
  
    
    public static void main(String args[]){        
        int x=13,y;
        while(x>1){            
            if(x%2==0){                
                y=x/2;
                x=y;
                System.out.println(x);
            }else if(x%2==1) {                
                y=3*x+1;
                x=y;
                System.out.println(x);
            }
            
            
        }
        
    }
}