Listing 4: Hi-Lo in Java using breaks

import java.io.*;

public class Hilo2
{
    public static void main (String[] args)
    throws IOException {
        BufferedReader in =
            new BufferedReader(new InputStreamReader(System.in));
        outer:
        for (;;) {
            int lo = 1, hi = 100, guess = 0;
            while (lo <= hi) {
                guess = (lo + hi) / 2;
                System.out.println("Is it " + guess + "?");
                char r = in.readLine().toUpperCase().charAt(0);
                
                if (r == 'L')
                    lo = guess + 1;
                else if (r == 'H')
                    hi = guess - 1;
                else if (r == 'Q')
                    break outer;
                else if (r != 'Y')
                    System.out.println("Try again...");
                else
                    break;
            }
            
            if (lo > hi)
                System.out.println("You cheated!");
            else
                System.out.println("Your number was " + guess);

            System.out.println("Want to play again?");
            if (in.readLine().toUpperCase().charAt(0) != 'Y')
                break;
        }
    }
}