Mobiele apps programmeren met Xamarin – De control flow van een C#-programma – Iteraties

print

Inhoud


Wat vooraf ging

Deze post sluit aan bij de gelijkaardige post uit Start to program – Control Flow en bij de voorgaande post Mobiele apps programmeren met Xamarin – De control flow van een C#-programma – Selecties.


Iteratieve statements (herhalingen)

Een iteratie is een herhaling. Ook wel eens een lus of in het Engels een loop genoemd.

Een keuze (if) wordt telkens maar éénmaal gecontroleerd. Indien de conditie waar is worden statements aan de waar-kant uitgevoerd, indien de conditie onwaar is worden de statements aan de onwaar-kant uitgevoerd.

Een herhaling herhaalt een blok met statements zolang een conditie waar is.

C# kent drie basisvormen van herhalingen.

Er is nog een vierde lus, de foreach(), die we gaan tegenkomen als we het hebben over lijsten en structuren.

while()

De while()-lus herhaalt een blok met statements zolang een conditie waar is.

while(conditie){
Statements zolang waar;
}

De schematische, algoritmische voorstelling voor de while() is:

Voorbeeld while()

Toon de getallen van 1 tot 10.

Ken een variabele Getal de waarde 1 toe en maak een variabel Tekst aan dat leeg is.

Zolang de waarde van de variabele Getal kleiner dan of gelijk is aan 10.

  • Voeg het getal toe aan de variabele Tekst en voeg een scheidingsteken toe met + ” – “.
  • Verhoog de waarde van de variabele Getal met 1 via Getal++.

Toon de waarde van de variabele Tekst als uitvoer.

De code is:

using System;
					
public class Program
{
	public static void Main()
	{
		//Invoer 
		int Getal = 1; 
		string Tekst = ""; 
		
		//Verwerken 
		
		while (Getal <= 10) 
		{ 
			Tekst += Getal + " - "; 
			Getal++; 
		} 
		
		//Uitvoer 
		Console.WriteLine(Tekst);
	}
}

do… while()

De do {…} while() is een variant op de while()-lus. Het verschil is dat bij een do {…} while() de statements, binnen de herhaling eerst éénmaal worden uitgevoerd voor de conditie getest wordt. Nadien worden de statements herhaald zolang de condite waar is.

do {
Statements zolang waar;
} while(conditie)

De schematische, algoritmische voorstelling voor de do {…} while() is:

Voorbeeld do…while()

Toon de getallen van 1 tot 10. Dit is hetzelfde voorbeeld als hierboven voor de while()-lus maar nu opgelost met de do {…} while()-variant.

Ken een variabele Getal de waarde 1 toe en maak een variabel Tekst aan dat leeg is.

Zolang de waarde van de variabele Getal kleiner dan of gelijk is aan 10.

  • Voeg het getal toe aan de variabele Tekst en voeg een scheidingsteken toe met + ” – “.
  • Verhoog de waarde van de variabele Getal met 1 via Getal++.

Toon de waarde van de variabele Tekst als uitvoer.

De code is:

using System;
					
public class Program
{
	public static void Main()
	{
		//Invoer 
		int Getal = 1; 
		string Tekst = ""; 
		
		//Verwerken 
		
		do 
		{ 
			Tekst += Getal + " - "; 
			Getal++; 
		} while (Getal <= 10);
		
		//Uitvoer 
		Console.WriteLine(Tekst);
	}
}

Belangrijk!

Binnen de while()-lus (en de do {…} while-lus) moet de waarde die in uw conditie vergeleken wordt gewijzigd worden. Wijzigt deze waarde niet tijdens de herhaling, dan blijft ze hetzelfde en zal de lus zich blijven herhalen. Wanneer de waarde die de conditie de status waar bezorgde, tijdens de herhaling niet wijzigt dan blijft de conditie de status waar behouden en… de lus herhaalt zich zolang de conditie waar is.

Dit zorgt ervoor dat uw programma “hangt”.

In bovenstaand voorbeeld wordt de geteste waarde Getal gewijzigd door deze binnen de herhaling te verhogen met 1 met Getal++.

Opdracht

Kunt u dat vervelende ” – ” achteraan wegwerken?

For()

De for()-lus herhaalt een blok met statements zolang een conditie waar is. De for()-lus is eigenlijk een andere schrijfwijze voor de while()-lus en wordt hoofdzakelijk gebruikt indien het aantal maal dat de lus moet herhaalt worden vast ligt.

for(beginwaarde; conditie; verhoging){
Statements zolang waar;
}

Beginwaarde is een “teller” die de startwaarde toekent voor de lus start.

Conditie definieert de conditie voor de lus, namelijk zolang de condite waar is. De teller wordt gebruikt om de conditie te testen.

Verhoging wordt iedere keer op het einde van de lus uitgevoerd en verhoogt teller met een waarde.

De syntax meer in de praktijk ziet er als volgt bijvoorbeeld als volgt uit:

for(var Teller = 1; Teller <= 10; Teller++){
Statements zolang waar;
}

De schematische, algoritmische voorstelling voor de for() is identiek aan de while():

Voorbeeld for()

Genereer en toon de getallen van 1 tot 10. Dit is hetzelfde voorbeeld als hierboven voor de while()-lus maar nu opgelost met de for()-variant.

Ken een variabele Getal de waarde 1 toe en maak een variabel Tekst aan dat leeg is.

Zolang de waarde van de variabele Getal kleiner dan of gelijk is aan 10.

  • Voeg het getal toe aan de variabele Tekst en voeg een scheidingsteken toe met + ” – “.
  • Verhoog de waarde van de variabele Getal met 1 via Getal++.

Toon de waarde van de variabele Tekst als uitvoer.

De code is:

using System;
					
public class Program
{
	public static void Main()
	{
		//Invoer 
		string Tekst = ""; 
		
		//Verwerken 
		for (int Getal = 1; Getal <= 10; Getal++) {
			Tekst += Getal + " - ";
		} 	
		
		//Uitvoer 
		Console.WriteLine(Tekst);
	}
}


Opdracht

In de post over computationeel denken is onderstaand algoritme getoond.

Werk dit uit.


Behandelde Basiscompetenties uit de module ICT Programmeren – Specifieke ontwikkelomgeving: eenvoudige functionaliteiten

  • IC BC234 – kan de basisprincipes van programmeren in een specifieke ontwikkelomgeving toepassen
  • IC BC236 – kan eenvoudige wijzigingen aan een programma aanbrengen
  • IC BC241 – kan een programma in een specifieke ontwikkelomgeving maken
  • IC BC250 – kan bij het programmeren in functie van een specifieke ontwikkelomgeving, een juiste logica volgen

Geef een reactie

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

  • Abonneer je op deze website d.m.v. e-mail

    Voer je e-mailadres in om je in te schrijven op deze website en e-mailmeldingen te ontvangen van nieuwe berichten.