Program not running as intended

First time asking and I couldn’t find a foremat guid e for questions. This piece of code doesn’t execute unless time is greater or equal to init.units[i].time but is somehow running anyways. The idea is that when turnInProgress is -1 it is supposed to increment time. The loop testForTurn under TurnOrder is supposed to go through the Units list with a for loop to determine the units time. If turn time is greater than the units time, that means that the unit is meant to go next. The later part is the Action script which allows the player (which I should mention is index 0 of the units list) to choose to do a thing, which increments unit time. If any more context is needed please ask.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Units
{
    public float mhp;
    public float hp;
    public float defence;
    public float speed;
    public int time;

    public Units(float MHP, float HP, float Defence, float Speed,int Time)
    {
        speed=Speed;
        defence=Defence;
        mhp=MHP;
        hp=HP;
        time=Time;
    }
}

public class Actions
{
    //unit is redundant but good to know who creates an action
    public int unit;
    public int target;
    public string action;
    public int modifier;
    public int time;

    public Actions(int Unit, int Target, string Action, int Modifier, int Time)
    {
        unit = Unit;
        target = Target;
        action = Action;
        modifier = Modifier;
        time = Time;
    }
}

public class Initialize : MonoBehaviour
{
    //unit list
    public List<Units> units = new List<Units>();
    public List<Actions> AL = new List<Actions>();
    // Start is called before the first frame update
    void Start()
    {
        //player
        units.Add(new Units(100,100,0,100,0));
        //everything after is enemy
        units.Add(new Units(50,50,0,100,0));
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StatManip : MonoBehaviour
{
    public Initialize init;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    public void Attack(int targ, int mod)
    {
        Debug.Log(targ+" attacked for "+mod+" damage");
        init.units[targ].hp-=mod;
        init.AL.RemoveAt(0);
    }
    public void Defend(int targ, int mod)
    {

    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TurnOrder : MonoBehaviour
{
    public Initialize init;
    public StatManip sm;
    public float time;
    public string status;
    public int unitTurn;
    public int turnInProgress;
    // Start is called before the first frame update
    void Start()
    {
        time = 0;
        status = "Start";
        turnInProgress = -1;
    }

    // Update is called once per frame
    void Update()
    {
        Debug.Log("SPEC1 : "+status);
        debug();
        Debug.Log("SPEC2 : "+status);
        testForAction();
        Debug.Log("SPEC3 : "+status);
        testForTurn();
        Debug.Log("SPEC4 : "+status);
        testForDead();
        if (status == "Start")
        {
            time++;
        }
    }

    void debug()
    {
        Debug.Log("time : "+time);
        for(int i = 0; i < init.units.Count; i++)
        {
            Debug.Log("index"+i+System.Environment.NewLine+"time="+init.units[i].time);
        }
    }

    void testForAction()
    {
        for(int i = 0; i < init.AL.Count; i++)
        {
            if(time >= init.AL[i].time)
            {
                if(init.AL[0].action=="Attack")
                {
                    sm.Attack(init.AL[0].target,init.AL[0].modifier);
                }else if(init.AL[0].action=="Attack")
                {
                    sm.Defend(init.AL[0].target,init.AL[0].modifier);
                }
            }
        }
    }

    //this is problem area
    void testForTurn()
    {
        if(turnInProgress==-1)
        {
            for(int i = 0; i < init.units.Count; i++)
            {
                if(time >= init.units[i].time);
                {
                    Debug.Log("time : " + time +status+System.Environment.NewLine+"unitime : "+init.units[i].time);
                    status = "Stop";
                    turnInProgress = i;
                    Debug.Log("special "+status+System.Environment.NewLine+"turn : "+turnInProgress);
                    return;
                }
            }
        }
        return;
    }

    void testForDead()
    {
        for(int i = 0; i < init.units.Count; i++)
        {
            if(init.units[i].hp<=0)
            {
                init.units.RemoveAt(i);
            }
        }
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Action : MonoBehaviour
{
    public Initialize init;
    public TurnOrder torder;
    //stores actions to be done
    public int target;
    public float speed;
    // Start is called before the first frame update
    void Start()
    {
        target = 1;
        speed=0;
    }

    // Update is called once per frame
    void Update()
    {
        if(torder.turnInProgress==-1)
        {
            speed=0;
        }
        else
        {
            speed = init.units[torder.turnInProgress].speed;
        }
        //player turn
        if (torder.turnInProgress==0)
        {
            Debug.Log("Ur turn playa!");
            //attack
            if (Input.GetKeyDown("1"))
            {
                Debug.Log("1 pressed at "+torder.time);
                init.AL.Add(new Actions(torder.turnInProgress,target,"Attack",25,init.units[torder.turnInProgress].time+Mathf.RoundToInt(1*speed)));
                init.units[0].time+=Mathf.RoundToInt(1*speed);
                torder.status = "Start";
                torder.turnInProgress=-1;
            } else if (Input.GetKeyDown("2"))
            {
                Debug.Log("2 pressed at "+torder.time);
                init.AL.Add(new Actions(torder.turnInProgress,target,"Defend",25,init.units[torder.turnInProgress].time+Mathf.RoundToInt(1*speed)));
                torder.status = "Start";
                torder.turnInProgress=-1;
            } else if (Input.GetKeyDown("up"))
            {
                //unit underflow
                if (target == 1)
                {
                    target = init.units.Count;
                } else
                {
                    target++;
                }
            } else if (Input.GetKeyDown("down"))
            {
                //unit overflow
                if (target == init.units.Count)
                {
                    target = 1;
                } else
                {
                    target--;
                }
            }//enemy turn
        } else if(torder.turnInProgress>=1)
        {
            init.AL.Add(new Actions(torder.turnInProgress,0,"Attack",25,init.units[torder.turnInProgress].time+Mathf.RoundToInt(1*speed)));
            init.units[torder.turnInProgress].time+=Mathf.RoundToInt(1*speed);
            torder.status = "Start";
            torder.turnInProgress=-1;
        }
        Debug.Log("Action Status : "+torder.status);
    }
}

picture for reference

You have a semicolon at the end of your if statement. That disconnects the actual if statement from the following body. So your if statement simply does nothing while the body / block that follows simply runs unconditionally. So remove that semicolon at the end.