Te explico lo que paso en tu código: cuando escribes do significa que se debe realizar lo que esta dentro de las llaves y luego se revisa la condición(while) para ver si se continua con la iteración. y segun veo tu codigo no tiene por que salir de la iteración cuando le das la edad correcta.
Tu condicion dice lo siguiente en español entendible "do"{ejecuta una serie de sentencias sin verificar la condicion de iteración, al llegar al final} revisa la condicion while(mientras que edad sea mayor que 1 ó edad sea menor que 110), si la respuesta a la condicion es si entonces se repite desde do si la respuesta a la condicion es no se sale de la iteración. Te oy a mostrar como debe ser:    
Código Javascript
:
Ver original- public class LeerUnaEdad{ 
-   
-    public static void main (String [] args){ 
-       int edad = 0 ; 
-       do{ 
-          Scanner entrada = new Scanner (System.in); 
-          System.out.println ("Escribe una edad " ); 
-          edad = entrada.nextInt (); 
-          if (edad < 1 || edad > 110){ 
-             System.out.println ("error"); 
-          }else{ 
-             System.out.println ("edad es: " + edad); 
-          } 
-       }while (edad < 1 || edad > 110); 
-    } 
- }