Programmering: while-løkker

Hvis vi ikkje veit kor mange gonger vi må gjennomløpa ei løkke, kan vi bruka ei while-løkke. I eksempelet kastar vi Mynt og Kron og stoppar når vi har fått tre Mynt på rad. For kvar iterasjon genererer vi tilfeldig ein "M" eller ein "K", og legg saman kor mange M vi har fått sidan forrige K. Når antalet er 3 stoppar vi. Ei while-løkke ser omtrent slik ut: while (betingelse){ kode }. Betingelsen vår er at antallMynt er mindre enn 3. Kjør programmet.

Python


	import random

	antallMynt = 0
	antallKast = 0

	while (antallMynt < 3): 
		mynt = random.randint(0, 1)
		antallKast +=1
		if (mynt):			# Vi bruker $mynt som ein Boolsk variabel. Alternativ til: if ($mynt == 1)
			antallMynt +=1
			print("M, ")
		else:
			antallMynt = 0
			print("K, ")
	print("Vi brukte ",antallKast," kast! ")
	

Merk: Vi må importera biblioteket random for å bruka randint.

JavaScript


    var antallMynt = 0
	var antallKast = 0

	while (antallMynt < 3) {
		var mynt = Math.floor(Math.random() * 2 ) //Sjå forklaring
        antallKast++
		if (mynt){			// Vi bruker $mynt som ein Boolsk variabel. Alternativ til: if ($mynt == 1)
			antallMynt ++
			document.write("M, ")
		} else {
			antallMynt = 0
			document.write("K, ")
		}
    }
    document.write("
Vi brukte " +antallKast+ " kast! ")

Forklaring: Math.random()gir eit desimaltal mellom 0 og 0.99999... (dvs. 1 er ekskludert) Når vi multipliserer med 2, får vi eit eit desimaltall frå 0 og til 1.9999... Tilslutt runder vi svaret ned med Math.floor() til nærmaste heiltal, dvs 0 eller 1.

PHP

	
	$antallMynt = 0;
	$antallKast = 0;
	
	while ($antallMynt < 3) {
		$mynt = rand(0,1);
		$antallKast ++;
		if ($mynt){			//Vi bruker $mynt som ein Boolsk variabel. Alternativ til: if ($mynt == 1)
			$antallMynt ++;
			echo "M, ";
		}
		else {
			$antallMynt = 0;
			echo "K, ";
		}
	}
	echo "

Vi brukte $antallKast kast!

";