Inre slinga - Inner loop
I datorprogram , en viktig form av flödesreglerings är den slingan som förorsakar ett block av kod som skall exekveras mer än en gång. Ett vanligt uttryck är att ha en slinga inbäddad i en annan slinga, varvid den inneslutna slingan ofta kallas den inre slingan . Två huvudtyper av slingan finns och de kan kapslas in i varandra till, eventuellt, vilket djup som helst. De två typerna är för loop och while loop. Båda är något annorlunda men kan bytas ut. Forskning har visat att prestanda för en slinga med en inre slinga är annorlunda jämfört med en slinga utan en inre slinga. Faktum är att även prestanda för två slingor med olika typer av inre slinga, där den ena är en för slinga och den andra en stundslinga, är olika.
Det observerades att fler beräkningar utförs per tidsenhet när en inre för loop är involverad än annars. Detta innebär, med tanke på samma antal beräkningar att utföra, kommer den med en inre för loop att avslutas snabbare än den utan den. Detta är en maskin- eller plattformsoberoende teknik för loopoptimering och observerades över flera programmeringsspråk och testade kompilatorer eller tolkar. Fallet med en stundslinga eftersom den inre slingan fungerade dåligt och utförde ännu långsammare än en slinga utan någon inre slinga i vissa fall. Två exempel nedan skrivna i python presenterar en while-loop med en inre för loop och en while-loop utan någon inre loop. Även om båda har samma avslutande tillstånd för sina loopar, kommer det första exemplet att avslutas snabbare på grund av det inre för loop. Variabeln innermax är en bråkdel av maxticketno- variabeln i det första exemplet.
while ticketno * innermax < maxticketno:
for j in range(0, innermax):
if (ticketno * innermax + j) == jackpotno:
return
ticketno += 1
while ticketno < maxticketno:
if ticketno == jackpotno:
return
ticketno += 1
Referenser