# Estructura de control

En llenguatges de programació, les estructures de control permeten modificar el flux d'execució de les instruccions d'un programa informàtic.
Amb les estructures de control es pot:
* D'acord amb una condició, executar un grup o un altre de sentències (If-Then-Else i Select-Case)
* Executar un grup de sentències mentre existeixi una condició (Do-While)
* Executar un grup de sentències fins que hi hagi una condició (Do-Until)
* Executar un grup de sentències un nombre determinat de vegades (For-Next)
* Etc
Totes les estructures de control tenen un únic punt d'entrada i un únic punt de sortida. Les estructures de control es pot classificar en: seqüencials, iteratives i de control avançades. Això és una de les coses que permet que la programació es regeixi pels principis de la programació estructurada.
Els llenguatges de programació moderns tenen estructures de control similars. Bàsicament el que varia entre les estructures de control dels diferents llenguatges és la seva sintaxi, cada llenguatge té una sintaxi pròpia per expressar l'estructura.
Altres llenguatges ofereixen estructures diferents, com ara els ordres guardats.

## Tipus d'estructura de control

Algunes estructures de control en el llenguatge Java

### Antecedents

El terme "estructures de control", ve del camp de la ciència computacional. Quan es presenten implementacions de Java per a les estructures de control, ens referim a elles amb la terminologia de l'especificació del llenguatge Java, que es refereixi a ella com instruccions.

### Execució seqüencial

Però en general les instruccions s'executen una després de l'altra, en l'ordre en què estan escrites, és a dir, en seqüència. Aquest procés es coneix com a execució seqüencial.

### Transferència de control

En Java, com en altres llenguatges de programació per excel·lència com C i/o C++, el programador pot especificar que les següents instruccions a executar potser no sigui la següent en seqüència. Això es coneix com a transferència de control. Cal tenir en compte que la instrucció goto és una paraula reservada però no s'utilitza ni es recomana. Un programa ben estructurat no necessita aquesta instrucció. Si saps programar no utilitzessis goto.

### Estructura de control: selecció if simple

Es tracta d'una estructura de control que permet redirigir un curs d'acció segons l'avaluació d'una condició simple, sigui falsa o veritable. Per exemple: Escriu un programa en Java que compari dos nombres i indiqueu si quin és major, menor, major i/o igual, menor i/o igual, o si són iguals:

### If-Then-Else

Si la condició és veritable, s'executa el bloc de sentències 1, en cas contrari, s'executa el bloc de sentències 2.

### Select-Case

* S'avalua l'expressió, donant com a resultat un nombre.
* Després, es recorren els "Case" dins de l'estructura buscant que el nombre coincideixi amb un dels valors.
* Cal que coincideixin tots els seus valors.
* Quan es troba la primera coincidència, s'executa el bloc de sentències corresponent i se surt de l'estructura Select-Case.
* Si no es troba cap coincidència amb cap valor, s'executa el bloc de sentències de la secció "Case Else".

### Do-While

Mentre la condició sigui veritable, s'executaran les sentències del bloc.
que també pot expressar-se:

### Do-Until

S'executa el bloc de sentències, fins que la condició sigui veritable

### For-Next

* Primer, s'avaluen les expressions 1 i 2, donant com a resultat dos nombres.
* La variable del bucle recorrerà els valors des del nombre donat per l'expressió 1 fins al nombre donat per l'expressió 2.
* El bloc de sentències s'executarà en cadascun dels valors que prengui la variable del bucle.

## Estructures niuades

Les estructures de control bàsiques poden niar, és a dir poden posar-se una dins d'una altra.

### Estructura If-Then dins d'estructura For-Next dins d'estructura Do-While
## Vegeu també

* Bucle (programació)
* Teorema del programa estructurat