Spring til indhold

While-løkke

Fra Wikipedia, den frie encyklopædi

En while-løkke er et begreb inden for programmering, som betegner en bestemt type af løkke. Begrebet stammer fra det engelske ord while, som betyder mens/medens, hvilket er fordi løkken gentager sig imens betingelsen er sand. While-løkken bruger man for det meste, når man ikke ved, hvor mange gennemløb man skal have af sine beregninger. Princippet bag en while-løkke er, at operationerne inde i selve løkken skal gennemløbes så længe et vist stop-kriterium er sandt.

En løkke af formen while(true) vil altså være en uendelig løkke medmindre, at løkken brydes på anden vis. Derimod vil while(false) aldrig vil blive gennemløbet. I mange tilfælde er stop-kriteriet et boolsk udtryk, men nogle sprog tillader andre udtryk som for eksempel C der bruger heltal hvor nul svarer til falsk og alle ikke-nul værdier svarer til sandt[1].

Her er et eksempel på, hvordan man i Java kan udskrive alle værdier af i, så længe er mindre end hundrede:

 public class WhileTest
 {
    public static void main(args[] a)
    {
       int i = 1;
       while (i * i < 100)
       {
          System.out.print(i + " ");
          i++;
       }
    }
 }

Outputtet for dette program vil således blive:

1 2 3 4 5 6 7 8 9
  * Variabeldefinitioner er udeladt
  PROCEDURE-DIVISION.
 
  MOVE 1 TO IDX
  COMPUTE ( RES = IDX * IDX )
  PERFORM  UNTIL RES >= 100
     DISPLAY IDX
     ADD 1 TO IDX
     COMPUTE ( RES = IDX * IDX )
  END-PERFORM
 
  STOP-RUN.

I COBOL kan man ikke lave beregninger i en betingelse, så de må laves på forhånd.

 void main(void)
 {
    int i = 0;
    while (i <= 100)
    {
       printf("%d ", i);
       i++;
    }
 }
  1. ^ Kernighan, Brain W.; Ritchie, Dennis M. (1988). The C Programming Language (2nd udgave). Prentice Hall. s. 56. ISBN 0-13-110362-8.