This is my interpretation of what happens for #1.
Code
while ( !karel.facingEast() ) {
karel.turnLeft();
}
karel.turnLeft();
}
Karel is facing north.
While loop condition met, Karel turns left.
Karel is now facing West.
The while loop condition is checked again.
Condition still met, Karel turns left.
Karel is now facing South
The while loop condition is checked again.
Condition still met, Karel turns left.
Karel is now facing East.
The while loop condition is checked again.
WHILE LOOP ENDS
Karel turns left.
Karel is facing North.