Need some help with identifying an infinite loop

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

public class Level_Controller : MonoBehaviour
{

private static int _nextLevelIndex = 0;
private Enemy[] _enemies;

private void OnEnable()
{
    _enemies = FindObjectsOfType<Enemy>();

}

void Awake()
{
     if (_nextLevelIndex == 0)
    {
        SceneManager.LoadScene("TitleScreen");
    }
}

private void OnMouseClick()
{
    _nextLevelIndex = 1;
    SceneManager.LoadScene("Level_1");
}
void Update()
{
    foreach(Enemy enemy in _enemies)
    {
        if (enemy != null)
        return;
    }

    Debug.Log("You killed all enemies");

    _nextLevelIndex++;
    string nextLevelName = "Level" + "_" + _nextLevelIndex;
    SceneManager.LoadScene(nextLevelName);
}

}

}

So, there is an infinite loop in here that I can’t seem to be able to find/fix. I’m used to Python so I know some basic components of C# code but this is my first time working with this Syntax.

_nextLevelindex never is incremented? In Awake you load the title screen scene. I suspect the next time you load a scene with this screen in it you’re sent back to the title screen. If you have this component in the title screen scene, then you get an infinite loop.