how does recursion work? does it finish the whole function or start a new one where it left off? and how should i change this so it wont subtract from total if the number is not between 1-3Code:void PlayerRemove(int &totalstones) /* remove a stone between 1-3 and check to make sure value of total is not 0 */ { int playerstones; cin>>playerstones; if ((playerstones>3)||(playerstones<1)) { cout<<"Value must be between 1 and 3"<<endl; cout<<"How many would you like? "; PlayerRemove(totalstones); } if ((totalstones-playerstones)<=0) { cout<<"Value must be between 1 and "<<totalstones<<endl; cout<<"How many would you like? "; PlayerRemove(totalstones); } totalstones=totalstones-playerstones;//here is the problem i only want it to do the subtraction if the number is between 1-3 }