I want void loop to go through once

do you have an external pull-up or pull-down on the button?

can you clarify why you have a while but with a break as the last line? that's basically a if()