メリクリだが質問です

while (flag == true) {
print
}

flagはグローバル変数です
こういうループをしているとき、他の関数でflagをfalseにすると、そのときのprintが実行されず抜けてしまうことがわかりました
falseになってもとりあえずその { } 内の処理を終えてから抜けるにはどうしたらよい