Slinga (programmering)

Från Rilpedia

Version från den 10 januari 2009 kl. 15.23 av Andreas Rejbrand (Diskussion)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

En slinga (eller loop) är en konstruktion inom programmering med vars hjälp effekten av en mängd instruktioner kan upprepas flera gånger. Antalet upprepningar kan vara förbestämt, men kan även bestämmas dynamiskt. Slingor används ofta då samma uppgift skall utföras för en mängd objekt (som att skriva ut alla namn som finns i en lista).

De flesta programmeringsspråken har olika typer av slingor. Man skiljer på slingor som är pre-evaluerande och post-evaluerande:

  • En pre-evaluerande slinga kontrollerar om den ska köra en gång till innan den utför de instruktioner som ingår i slingan. Exempel:
    • while (villkor) programkod
    • for(villkor) programkod
  • En post-evaluerande slinga kontrollerar om den ska köra en gång till sedan den utfört instruktionerna. Exempel
    • do programkod while villkor
    • repeat programkod until villkor

där villkor är ett uttryck i någon form som ska evaluera till sanningsvärdet sant (eng. true)

Vilken slingkonstruktion som används är oftast en fråga om programmerarens tycke och smak, då (i princip) alla slingor kan uttryckas med valfri slingkonstruktion.

För slingor som avses att användas då antalet upprepningar är förbestämt används ofta nyckelordet for (sv. för). För den typ som avses att användas då antalet upprepningar inte är förbestämt används ofta while (sv. medan) eller (mindre vanligt) repeat ... until.

Exemplen nedan är slingor skrivna i språket C som skriver ut de tio arabiska siffrorna.

int i = 0;
for (i = 0; i < 10; ++i) 
{
    printf ("%d\n", i);
}
 
int i = 0;
while (i < 10) 
{
    printf ("%d\n", ++i);
}
 
int i = 0;
do  
{
    printf ("%d\n", ++i);
} while (i < 11)
 
int i = 0;
repeat  
{
    printf ("%d\n", ++i);
} until (i == 10)

Se även


Personliga verktyg
På andra språk