claro, porque en el case tienes:
Código Java:
Ver originalcase 1:{
if (("X".equals(jLabel1.getText())) || ("O".equals(jLabel1.getText())) || turno==0){
break;
}
l
como es 1 y jLabel1 tiene un valor entra al if y hace el break; saliendo del switch pero regresando por la acción del while de manera infinita, necesitas hacer que cuando esto pase te entregue un nuevo número aleatorio y lo tienes que poner en lo, recuerda incrementarlo en 1 porque si te sale 0 y no haces el incremento saldrá del while y no hará nada.