For begizta

Programazioan **for** **begizta** aldez aurretik aginduak exekutatuko diren aldi minimo kopurua zehazten duen kontrol-egitura bat da. Aginduen bidezko programazio lengoai ia guztietan aurkitzen da.

## Begiztaren elementuak 
* '***Kontrol-Aldagaia****: Aldagai honek begiztaren errepikapenaren kontrola du. Ohikoa da **i** hizkia erabiltzea aldagai gisa, edo hurrengoak (j,k,...) begiztak habiratuta egonez gero. Lehenengo hurbilketa batean arraroa egin daiteke hizki honen aukeraketa, baina beste aldetik, behin ohituta, hain erabilia delarik kodea irakurtzeen errazten du.

* **Kontrol aldagaiaren hasieratzea*': sasikodean esplizitu egitea eskatzen da (:= *HasierakoBaliotik* atala), beste hizkuntza batzuetan aldiz ez da derrigorrezkoa. Edozein kasutan kodean hasiarazten ez diren kontrol aldagaiak erabiltzea ez da aholkatzen, kodearen irakurketa zailtzen baitu.

* **Kontrol baldintza**: sasikodean aldagaiak har dezakeen bukaerako baliorekin adierazten da (*BukaerakoBaliora* atala).

* **Handitzea**: sasikodean, kontrakoa esaten ez bada, 1 balioa hartzen da. Nahi izanez gero URRATSA = *UrratsarenBalioa*ren bidez edozein zenbaki oso (positiboa edo negatiboa) erabil daiteke.

* **Gorputza**: errepikapen bakoitzean egingo diren agindua(k) d(ir)a. Askotan kontrol aldagairen balioa erabiltzen da aginduetan (adibidez, zerrenda baten **i**. elementua hartzeko).

## Erabilerak 
Bere erabilera nagusia Bektoreetara bideratuta dago, indizearen arabera kokatuta dauden datuak aldatu, gehitu, ezabatu edo ikus daitezkeelarik.
## FORen adibidea sasikodean 
 KontrolAldagia := HasierakoBaliotik BukaerakoBaliora, URRATSA = Gehikuntza 
    Gorputza
 BUKATU
non *KontrolAldagia, HasierakoBalioa * eta Urratsa zenbaki osoak dira. Gorputzeko agindua(k) (BukaerakoBalioa - HasierakoBalioa + 1) aldiz exekutatuko dira urratsa 1 izanez gero. Hau da, HasierakoBaliotik BukaerakoBaliora barne aldatzen da KontrolAldagaia.

## C++en adibidea 
# 
# #include 
# using namespace std;
 int main() {
    int bektorea[10], i;
    for(i=0; i
    return 0; 
 }

*for*aren definizioan *i* kontrol aldagaia 0 balioarekin hasiarazten da, gero kontrol baldintza jartzen da, zikloa bete arte egiazkoa izan behar dena, eta bukatzeko unitate bateko gehikuntza adierazten da.

Adibidez, kontrol baldintza gisa i 
* **Multzoa**: zeharkatu nahi den datu egitura da. Erabilera ohikoena bektoreak dira edo -objektuetara bideratutako programazioan - bilduma motako klaseak.
* **Gorputza**: errepikapen bakoitzean egingo diren agindua(k) d(ir)a. Ezinbestekoa ez bada ere, ohikoena gorputzean hautatutako elementuaren gaineko eragiketaren bat egitea da.

#### Kontrol egitura berri baten beharra 
Egitura hau lengoai batzuetan *for* begiztaren erabilera ohikoenen kodearen idazkera eta irakurketa arinagoa lortzeko berrikuntza gisa sortu zen. Hau da, bektore baten elementu guztien gainean eragiketa bera egitea eta beharrezkoa ez izatea bektorearen barruan hauen posizioa jakitea.

*bakoitzerako* begiztan honela laburtzen da:
 multzoKO motaKO x BAKOITZEKO EGIN
 x = EragiketaBat(x)
 BUKAERA BAKOITZEKO
BAKOITZEKO egitura erabiltzearen abantailak honako hauek dira:
# Bektorearen tamaina eskuratzeko funtzio bat deitzea ez da beharrezkoa.
# Uneko balio adierazteko azpi-indize idazkera deseroso bat erabiltzea ez da beharrezkoa, batez ere, kontuan hartzen badugu egitura hau erabiltzen badugu balioaren indizea behar ez dugulako dela.
# Konpilazio unean elementuaren datu motaren gaineko egiaztapena egiten uzten du.
BAKOITZEKO begizta ez da FOR begiztaren ordezko bat, bakarrik aurreko ohiko kasuan erabiltzeko hobekuntza bat. Desberdintasun nagusia FOR eta BAKOITZEKOren artean lehenengoak bere errepikapenak balio bat arte aldatzen den aldagai batek kontrolatzen duela eta bigarrenak bektore baten elementu guztien zeharkatzeak kontrolatzen duela da.

## Erreferentziak 
## Kanpo estekak