How stop a piece of code from running if the conditions are no more met.

Hello, I’m quite new to scripting and i need help with a piece of code.
What I’m basically trying to do is that… Lets say I’m cutting a tree in a rpg game. If i move too far away from the tree, i want him to “stop cutting the tree”.

IEnumerator OnMouseDown() 
{

	float distance = Vector3.Distance(transform.position, pelaaja.position);
	GameObject Player = GameObject.Find("Player");
	GameMaster gameMaster = Player.GetComponent<GameMaster>();

	if(distance <= 1.414214f && gameMaster.gatheringResources == false )
		{
		float choppingTime = Random.Range(chopMin, chopMax);
		print(choppingTime);
		gameMaster.gatheringResources = true;
		yield return new WaitForSeconds(choppingTime);

		Inventory inventory = Player.GetComponent<Inventory>();
		inventory.wood += 1;
		print("You Just Chopped a log");
		gameMaster.gatheringResources = false;
		Destroy(gameObject);
		}
	else
	{
		print("You are either too far or already choping") ;
	}
} 

So basically what I’m trying to ask is that if the distance grows larger than 1.414214 while the yield is running, how do i make the rest of the code stop from running and instead print something like “you moved too far”. I hope you can understand my question. If you need more info go ahead and ask. I’m guessing it has something to do with a while loop, I just couldn’t get it to work

oh also if you wonder what “pelaaja” means, its just player in Finnish.

I’d do something like:

void OnMouseDown(){
  float endChoppingTime = Time.time + Random.Range(chopMin, chopMax);
  //begine chopping
  DoChopping(endChoppingTime);
}

IEnumerator DoChopping(float endTime){

  while(Time.time < endTime){
    if(distance <= 1.414214f &! gameMaster.gatheringResources){
      //continue chopping
      yield return new WaitForEndOfFrame();
    }else{
      //stop chopping
      yield break;
    }

  }else{
    //finished chopping
    yield break;
  }
}