cycle trhu an Array of gameobjects?

heyho!
so, i have a of gameobjects, players
and on each of them has a simple character controller script with a bool isControllable.

what i want to do now is, if i press the F key for example i wanna cycle threw them and set the isControllable bool to active. for example:

Player1 - isControllable = true;
Player1 - isControllable = false;
Player1 - isControllable = false:

PRESS the F Key:
Player1 - isControllable = false;
Player1 - isControllable = true;
Player1 - isControllable = false:

PRESS the F Key:
Player1 - isControllable = false;
Player1 - isControllable = false;
Player1 - isControllable = true:

how could i do this?
thanks!

public GameObject characters;
int currentActive = 0;

void Update()
{
	if(Input.GetKeyDown(KeyCode.F))
	{
		if(currentActive == characters.Length - 1) currentActive = 0;
		else currentActive++;
		for(int i = 0; i < characters.Length; i++)
		{
			if(i == currentActive) characters*.GetComponent<SimpleCharacterController>().isControllable = true;*

_ else characters*.GetComponent().isControllable = false;_
_
}_
_
}_
_
}*_
The ‘characters’ array holds the gameobjects which have SimpleCharacterController attached to them. Every time you press F, the currentActive number will increased by 1, or set to 0 if it has reached the length of the array to prevent errors. Then it cycles through the array, and if it reaches the gameobject which we want to set to active, it will set it to active. The rest of the gameobjects will be set to inactive.
Be sure to fill the ‘characters’ array, and you should set the first SimpleCharacterController to active before starting.