Una struttura di controllo, in informatica e specificatamente nei paradigmi di programmazione imperativa, è un costrutto sintattico di un linguaggio di programmazione la cui semantica afferisce al controllo del flusso di esecuzione di un programma, ovvero servono a specificare se, quando, in quale ordine e quante volte devono essere eseguite le istruzioni che compongono il codice sorgente in base alle specifiche di progetto del software da realizzare.