CODED LOCK, with different personal number, each number has its code

//Libraries
#include <LiquidCrystal.h>
#include <Keypad.h>

/*-------------------------------KEYPAD---------------------------------------*/
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
char keypressed;
char keymap[numRows][numCols]=
{
 {'7','8','9','A'},
  {'4','5','6','B'},
  {'1','2','3','C'},
  {'*','0','#','D'}
};
//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {4, 5, 6, 7};//Rows 0 to 3
byte colPins[numCols] = {0, 1, 2, 3};//Columns 0 to 3             
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

/*-------------------------------CONSTANTS------------------------------------*/
LiquidCrystal lcd(13,12,11,10,9,8); //LCD
const int buzzer = A1;        //Buzzer/small speaker
const int lock = A3;       //Electric door opener


/*-------------------------------VARIABLES------------------------------------*/
String password
="1234"; //Variable to store the current password
String tempPassword=""; //Variable to store the input password
int doublecheck;    //Check twice the new passoword
boolean armed = false;  //Variable for system state (armed:true / unarmed:false)
boolean input_pass;   //Variable for input password (correct:true / wrong:false)
boolean storedPassword = true;
boolean changedPassword = false;
boolean checkPassword = false;
int i = 1; //variable to index an array
/*----------------------------------------------------------------------------*/

void setup(){
  pinMode(lock,OUTPUT);
  lcd.begin(16, 2); //Setup the LCD's number of columns and rows 
  //Print welcome message...
  lcd.setCursor(0,0);
  lcd.print(" LES CIMENTS DE  ");
  lcd.setCursor(4,1);
  lcd.print(" BIZERTE  ");
  delay(1000);
  lcd.clear();
  lcd.setCursor(0,0);

}

void loop() { //Main loop
  unlockTheDoor();
}
/********************************FUNCTIONS*************************************/

void unlockTheDoor(){
  lockAgain: //goto label
  tempPassword="";
  lcd.clear();
  i=6;
  noTone(buzzer);
  digitalWrite(lock, LOW);
  while(!checkPassword){
    lcd.setCursor(0,0);
    lcd.print("ENTER PASSWORD:  ");
    lcd.setCursor(0,1);
    lcd.print("PASS>");
    keypressed = myKeypad.getKey();   //Read pressed keys
    if (keypressed != NO_KEY){    //Accept only numbers and * from keypad
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");       //Put * on lcd
        i++;
        tone(buzzer,800,200);   //Button tone
      }
      else if (keypressed == 'C'){
        changePassword();
        goto lockAgain;
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == 'A'){  //Check for password
        if (password==tempPassword){//If it's correct...
          lcd.clear();      
          lcd.setCursor(0,0);
          lcd.print("Correct password");
          lcd.setCursor(0,1);
          lcd.print("Door is unlocked");
          tone(buzzer,100);    //Play a tone while door is unlocked
          digitalWrite(lock, HIGH);//unlock the door for 5 seconds
          delay(5000);
          goto lockAgain;
        }
        else{           //if it's false, retry
           lcd.clear();      
          lcd.setCursor(0,0);
          lcd.print("Password incorrect");
          lcd.setCursor(0,1);
          lcd.print("Try again ... ");
           delay(500);
          tempPassword="";
          tone(buzzer,500,200);
          delay(300);
          tone(buzzer,500,200);
          delay(300);
          goto lockAgain;
        }
      }
    }
  }
}

//Change current password
void changePassword(){
  retry: //label for goto
  tempPassword="";
  lcd.clear();
  i=1;
  while(!changedPassword){        //Waiting for current password
    keypressed = myKeypad.getKey();   //Read pressed keys
    lcd.setCursor(0,0);
    lcd.print("CURRENT PASSWORD");
    lcd.setCursor(0,1);
    lcd.print(">");
    if (keypressed != NO_KEY){
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
        tone(buzzer,800,200);       
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == 'A'){
        i=1;
        if (password==tempPassword){
          storedPassword=false;
          tone(buzzer,500,200);
          newPassword();          //Password is corrent, so call the newPassword function
          break;
        }
        else{               //Try again
           lcd.clear();      
          lcd.setCursor(0,0);
          lcd.print("Password incorrect");
          lcd.setCursor(0,1);
          lcd.print("Try again ... ");
           delay(1000);
          tempPassword="";
          tone(buzzer,500,200);
          delay(300);
          tone(buzzer,500,200);
          delay(300);
          goto retry;
        }
      }
    }
  }
}
String firstpass;
//Setup new password
void newPassword(){
  tempPassword="";
  changedPassword=false;
  lcd.clear();
  i=1;
  while(!storedPassword){
    keypressed = myKeypad.getKey();   //Read pressed keys
    if (doublecheck==0){
      lcd.setCursor(0,0);
      lcd.print("SET NEW PASSWORD");
      lcd.setCursor(0,1);
      lcd.print(">");
    }
    else{
      lcd.setCursor(0,0);
      lcd.print("One more time...");
      lcd.setCursor(0,1);
      lcd.print(">");
    }
    if (keypressed != NO_KEY){
      if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' ||
      keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' ||
      keypressed == '8' || keypressed == '9' ){
        tempPassword += keypressed;
        lcd.setCursor(i,1);
        lcd.print("*");
        i++;
          tone(buzzer,800,200);
      }
      else if (keypressed=='#'){
        break;
      }
      else if (keypressed == 'A'){
        if (doublecheck == 0){
          firstpass=tempPassword;
          doublecheck=1;
          newPassword();
        }
        if (doublecheck==1){
          doublecheck=0;
          if (firstpass==tempPassword){
            i=1;
            firstpass="";
            password = tempPassword; // New password saved
            tempPassword="";//erase temp password
            lcd.setCursor(0,0);
            lcd.print("PASSWORD CHANGED");
            lcd.setCursor(0,1);
            lcd.print("----------------");
              storedPassword=true;
              tone(buzzer,500,400);
              delay(2000);
              lcd.clear();
              break;
          }
          else{
            firstpass="";
            newPassword();
          }
        }
      } 
    }
  }
}