Help - my for loop locks up unity.

I am trying to basically create a power meter. When you hold down the F key, a for loop runs and adds +25 to the counter which is then equal to my arrow power. It locks up when I run it though, where did I go wrong? Should I possibly be using a while loop maybe?

void Update () 
	{
		if(Input.GetButton("Fire Weapon"))
		{
			//Position to launch the arrow from:
			launchPosition = cameraHeadTransform.TransformPoint(0,0, 0.0f);
			
			//set the arrow speed
			for(float cnt = 50; cnt <= maxArrowPower; cnt += 25)
			{
				
				cnt = transferArrowSpeed;
			}
			
			//create the arrow
			Instantiate(arrow, launchPosition, Quaternion.Euler(cameraHeadTransform.eulerAngles.x, 
																	myTransform.eulerAngles.y, 0));
			
			
		}
	}

its an infinite loop.

you look for cnt to be less than or equal to maxArrowPower but then you reset cnt every loop to be transferArrowSpeed.

your not adding to cnt really because what it looks like is

//lets assume transferarrowspeed =10

loop 1;
cnt = 50;

then
cnt = transferArrowSpeed or
cnt = 10

then cnt = cnt + 25 so
cnt = 35;

loop 2

cnt = transferarrowspeed or
cnt = 10;

then cnt = cnt + 25 so
cnt = 35;

notice the infinite loop?

mark as answered

the solution is stop modifying the value of cnt in the loop by the way,

I changed to a do while and it works: Thanks to other poster as well.

do
		{
			transferArrowSpeed += 25;
		}
		while(increasingArrowPower = true && transferArrowSpeed <= 200);