Counter variables in loops

I told you to have your program report things back to you through “notify”.
You need to have your program reports “do (latitude X longitude Y) match with table entry #1 (latitude A longitude B) ?” and give up a result like “table entry #5 is a match” so that you see what is going on. If the system reports MULTIPLE matches in the same key press, you would know there is an issue. If there is no match, you will also see no message.
Then, depending on the conditions of match/ no match you can dig further.

The potential issue with button 2 is that if you forget to use it, then BL is NOT RESET. Which mean the loop will stop on the first case the next time you press button 1, because BL has remained set to 1.
THAT is your problem: your loop termination condition does NOT depend on the result of the current press, it could depend on the user NOT clicking button 2 and that is POOR design.

Bro whatever u suggested everything is fine ?
im getting GPS Coordinates with vast errors like
1.15.5124973
2.15.513536
3.15.5135518
how to get accurate values from location sensor

and my code working fine i have checked it

The difference between 15.513536 and 15.5135518 is only 1.75 m at the equator. The difference would be less if the latitude is closer to the pole. 1.75 m is way more accurate than what the GPS usually propose, which is typically in the order of 4 m.

The difference between 15.5124973 and 15.5135518 is however more substantial: 117 m at the equator.
If those were supposed to be at the same spot, there is a appreciable deviation that is hard to understand.
Did you get this value as a first measure, while the system was still acquiring satellites? Was it stable?