Programmeren in Python/Conditionele statements: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Geen bewerkingssamenvatting
Label: Ongedaan gemaakt
DimiC88 (overleg | bijdragen)
Setje is niet de juiste benaming hiervoor, het gaat weldegelijk om blokken. Ook wordt Set gebruikt als naam voor en datatype wat héél misschien verwarrend kan zijn. Versie 348516 van 62.131.82.79 (overleg) ongedaan gemaakt
Label: Ongedaan maken
Regel 32:
Hoe werkt dit nu ? Om te beginnen wordt de gebruiker om input gevraagd, met een prompt '''Integer?'''; vervolgens wordt de invoer gelezen en opgeslagen in de variabele <code>n</code>. Dan wordt er een beslissing genomen op basis van de waarde van <code>n</code>, indien de waarde kleiner is dan nul, dan wordt n vermenigvuldigd met -1 en wordt dit als absolute waarde getoond, indien <code>n</code> reeds positief is, wordt deze waarde rechtstreeks gebruikt.
 
Iets formeler, Python verifieert of de Booleaanse uitdrukking <code>n < 0</code> <code>True</code> of <code>False</code> is. Indien het <code>if</code> statement gevolgd is door een geïndenteerd blok statements, dan worden deze statements uitgevoerd indien de uitdrukking <code>True</code> is. Het <code>if</code> statement heeft een optioneel <code>else</code> statement gevolgd door een volgend setjeblok geïndenteerde statements. Dit tweede setjeblock wordt uitgevoerd indien het de expressie gekoppeld aan het <code>if</code> statement <code>False</code> blijkt te zijn.
 
Er zijn een aantal manieren om vergelijkingen uit te drukking in een expressie. De volgende tabel geeft deze weer:
Regel 65:
 
==elif==
Naast <code>else</code> kan een <code>if</code> statement eveneens gevolgd worden door een <code>elif</code> statement. Dit is de verkorte notatie voor '''else if'''. Wanneer het <code>if</code> statement <code>False</code> is, wordt de expressie meegegeven aan het <code>elif</code> statement en geëvalueerd. Indien dit geldig (true) is, wordt het setjeblok geïndenteerde statements uitgevoerd. Indien het <code>False</code> is wordt, indien aanwezig het volgende <code>elif</code> statement bekeken of wordt het <code>else</code> setje statementsblok uitgevoerd, indien aanwezig. Een <code>if</code> statement kan optioneel gevolgd worden door nul of meerdere <code>elif</code> statementsblokken welke gevolgd kunnen worden door één of geen else statementblok. Hiernaast kan een setje blok statements natuurlijk ook andere <code>if</code> statementsblokken bevatten, dit zijn dan '''geneste''' <code>if</code>'s. Bijvoorbeeld:
{{Code|
| Taal=Python
Regel 98:
</pre>
 
Merk opBemerk dat <code>elif a <= 7</code> alleen getest wordt indien de <code>if</code> expressie <code>False</code> bleek te zijn.
 
Het volgende voorbeeld maakt gebruik van geneste <code>if</code>'s:
Regel 124:
</syntaxhighlight>
}}
Hier itereren we over alle getallen tussen 1 en 10 (inclusief). De buitensteuiterste <code>if</code> maakt het onderscheid tussen even getallen, het getal 1 en oneven getallen. Bij de even getallen voldoetvangen we 2 op als enige als priemgetal. Bij de oneven getallen kleiner dan tien wordt 9 aangemerktopgevangen als zijnde geen priemgetal. Merk opBemerk dat er heel wat zinnigere methoden zijn om priemgetallen te bepalen en het gaat hier dan ook om een louter didactisch voorbeeld om het nesten van lussen (if statements) te illustreren.
 
== Switch ==
 
Een <code>switch</code> is een controle statement dat in de meeste programmeertalen aanwezig is en dit wordt gebruikt om een groot aantal <code>if-elif</code> combinaties compacter te maken. Python heeft echter geen standaard ondersteuning voor dit type structuur, maar door intelligent gebruik te maken van een array of een woordenboek kunnen we een switch simuleren.
 
<syntaxhighlight lang="python">
Regel 158:
</syntaxhighlight>
 
Dit werkt omdat Python een referentie naar de functie opslaat in de array op de index in kwestie, door haakjes toe te voegen wordt eigenlijk een functie aanroep gemaakt. Merk opBemerk dat een <code>menu[x]()</code> waarbij <code>x</code> een integer is, eigenlijk equivalent is aan volgende structuur:
 
<syntaxhighlight lang="python">
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.