Change weapons / gameObject / Int with one button / key

I have a weapon index from 0 to 4
Each integer stores a weapon

   If (Input.GetButtonDown(“ChangeWeapon”))
   { 
   TurnOnSelected Weapon (0); // (0) is weapon one, "(1)" would be weapon two..  “(2)” would be weapon three and so on..
    }

I’d have to type the above code four times and assign each number (Int) with a different button.

I just want one button.

what I’m trying to do is:

**if ** "ChangeWeapon” button is ***pressed *** — it activates weapon 0
, if it’s pressed again … it
activates
1, and press same button
again it goes to 2, then 3 and
then 4 and then back to 0.

***How can I use one button to go through a list of 0 - 4? ***

 public class WeaponSelector : MonoBehaviour
{
[SerializeField] private WeaponManager[] weapons; 
private int current_Weapon_Index ;
public string ChangeWeapon = "Change Weapon" ;

void Start()
{
    current_Weapon_Index = 0;
    weapons[current_Weapon_Index].gameObject.SetActive(true);
}
void Update()
{
    if (Input.GetButtonDown("Change Weapon"))
    {
        TurnOnSelectedWeapon(0); // id like to be able to sort through 0-5 when ever i click
    }
    void TurnOnSelectedWeapon(int weaponIndex)
    {
        weapons[current_Weapon_Index].gameObject.SetActive(false);
        weapons[weaponIndex].gameObject.SetActive(true);
        current_Weapon_Index = weaponIndex;
    }

if (Input.GetButtonDown(“Change Weapon”))
{
int switchWeapon = current_Weapon_Index;
switchWeapon++;
switchWeapon %= weapons.Length;
TurnOnSelectedWeapon(switchWeapon);
}