| Number of tries | open | attempt < 3 | !open | attempt < 3 && !open | Another Chance? | 
|---|---|---|---|---|---|
| 3 | false | false | true | false && true | false | 
| 3 | true | false | false | false && false | false | 
Here is the near-complete program,
created by "pasting"  most of the previous program's main()
method into the loop body discussed above.
The indenting has been adjusted appropriately,
and a few other minor changes have been made.
import java.io.*;
class LoopingLock
{
  public static void main( String[] args ) throws IOException
  {
    int lockFirst = 6, 
        lockSecond = 12, 
        lockThird = 30; 
    int numb;                                            
    BufferedReader stdin = new BufferedReader( 
        new InputStreamReader( System.in ) );
    String input;
    int     attempt     = 0;
    boolean open    = false;
    while ( attempt < 3 && !open )
    {
      // try a combination, setting open to "true" if correct
      boolean correct =  _____________;
      //First Number
      System.out.println("\nEnter first number: ");
      input = stdin.readLine();
      numb  = Integer.parseInt( input );
      if ( numb != lockFirst )    
        correct = false ;
      //Second Number
      System.out.println("Enter second number: ");
      input = stdin.readLine();
      numb  = Integer.parseInt( input );
      if ( numb != lockSecond )    
        correct = false  ;
      //Third Number
      System.out.println("Enter third number: ");
      input = stdin.readLine();
      numb  = Integer.parseInt( input );
      if ( numb != lockThird )    
        correct = false  ;
      //Result
      if ( correct )
      {
        System.out.println("Lock opens");
        open = _____________
      }
      else
        System.out.println("Lock does not open");
      attempt = attempt + 1;
    }
  }
}
A few things remain to be patched up.
Luckily,
you can easily do them.
Pay attention to how the variables open and correct
work with the loop.
It is very easy to get things like this messed up.