06.06.2011, 11:34
(
Последний раз редактировалось mamorunl; 29.10.2011 в 19:02.
)
Naar aanleiding van de vele berichtjes in een topic in het discussieboard leek het me slim om alles, in een gepaste manier, duidelijk te maken. In deze tutorial zullen we de beginselen leren van het programmeren met de taal PAWN.
In deze tutorial zullen we de volgende drie onderwerpen behandelen:
Een IF (ALS, in het Nederlands)-statement is een stuk code wat uitvoert als, en allen ALS, de expressie in de ronde haken waar is. Enkele voorbeelden:
Zo ziet de opmaak van een if-statement eruit:
Zorg altijd dat je vishaken (brackets / curly braces) aan elkaar linken! Als je hem opent maar niet sluit, krijg je foutmeldingen in je IDE (Pawno, hoogstwaarschijnlijk).
Als beginnend programmeur is het altijd goed om haken te plaatsen. Dit is overzichtelijk en makkelijk te debuggen MITS je je code goed uitgelijnd hebt. De nieuwe pawno wil dat al (loose indentation) en daardoor hou je je overzicht over je code. Zoals John Woods zei:
Ook al ben je het zelf die je code onderhoud. ALTIJD zorgen dat het leesbaar blijft!
Zoals gezegd wordt de code in de vishaken uitgevoerd alleen als de expressie waar is. Ik zeg het nogmaals, als de EXPRESSIE waar is. Dit kan verwarrend zijn, daarom licht ik het toe met een stuk code:
De expressie leest: als 'blueMonkey' gelijk is aan 'false' (onwaar) dan voer volgende code uit (verf de aap blauw). Nu lijkt het alsof de statement FALSE is, maar niets is minder waar: als de blueMonkey inderdaad false is, dan is de expressie true! Dus wordt de code uitgevoerd. Als dit te ingewikkeld is: het wordt ooit nog wel duidelijk
Wat nu als we iets anders willen doen als blueMonkey true is? We kunnen een extra if-statement erin doen:
Dit lijkt echter zeer onoverzichtelijk en het is stom programmeren aangezien een boolean maar 2 waarden kan hebben: true of false.
ELSE statements
Er is hoop! Een hoop om te leren
ELSE-statements zijn ervoor om iets te doen als de IF-statement NIET waar is. Let op dat je de ELSE bij de goede haken plaatst en niet laat zweven zonder een if-statement. Deze twee horen bij elkaar, drijf ze alsjeblieft niet uit elkaar
Een else statement ziet er als volgt uit:
De IF-statement is hier weggelaten. Zoals je ziet draagt de else-statement geen parameters (of, een expressie) met zich mee. Dat komt omdat deze code hoe dan ook wordt uitgevoerd als de if (die wel een expressie heeft) wordt uitgevoerd. We kunnen onze vorige code nu makkelijk herschrijven als volgt:
Ziet er veel beter uit toch? Het is ook veel overzichtelijker. De bovenstaande code leest zich als:
Wat nu eigenlijk als je meerdere else-statements wil. We halen er nu een stukje bij waarbij we de kleur ophalen van de aap (ik weet ook niet waarom nu weer een aap.. het kwam in me op). De methode die we gebruiken is 'getMonkeyColour()'.
Daarvoor is er de:
ELSE IF statement
Klopt, die hebben we niet genoemd in het begin. een elseif statement is eigenlijk gewoon een extra ifstatement in een else:
die elseif statements kun je natuurlijk zo lang maken als je zelf wilt. Deze zijn echter net als een IF-statement opgebouwd! Er moet dus een expressie tussen de ronde haken komen.
Met deze kennis kun je ook eenvoudig een switch statement opzetten, maar hierover zet ik meer in een volgende tutorial. Anders is het zo veel voor de eerste keer.
Hoofdstuk 2: Switch statements
Nu je een tijdje hebt gehad om gewend te raken met if en else statements is het nu tijd voor de switch-statement. Een switch statement is eigenlijk een grote verzameling van IF-IFELSE statements. Neem het volgende voorbeeld:
Dit ziet er niet overzichtelijk uit en is moeilijk om te beheren. De bovenstaande code kan je makkelijk vervangen door een switch-statement.
Een switch statement begin je met:
De variabele is een nummer die je wilt controleren. Om het vorige voorbeeld er weer bij te pakken:
Dit noemt men ook wel de 'body' van een switch-statement. Op dit moment kan je daar natuurlijk niets mee dus we gaan hem vullen met de if-elseif statements. Natuurlijk bedoelen we dit niet op deze manier:
Want dan zou het extra code kosten. We werken daarom met 'cases'. Ik beschrijf nu eerst 1 case:
dit staat gelijk aan:
Hanteer de bovenstaande notatie trouwens niet in jouw eigen projecten! Het is geen goede codeerstyle!
Om het hele verhaal nu even netjes af te maken met een volledige switch:
Veel geluk!
In deze tutorial zullen we de volgende drie onderwerpen behandelen:
- if-statements
- else-statements
- switch-statements
Een IF (ALS, in het Nederlands)-statement is een stuk code wat uitvoert als, en allen ALS, de expressie in de ronde haken waar is. Enkele voorbeelden:
pawn Код:
if(true) // deze code zal altijd uitvoeren maar is wel een goede if-statement
if monkey == blue // deze code is fout: het bevat geen ronde haken
if(monkey = blue) // deze if-statement lijkt op het eerste gezicht goed, maar is het niet. Deze code zal altijd uitvoeren: 'blue' wordt aan 'monkey' TOEGEWEZEN!
if(monkey == blue) // correcte if-statement
if(value >= 0) // correcte if-statement
if(value >= 0 && value < 0) // onmogelijk, maar de if-statement is wel goed opgebouwd.
pawn Код:
if(/*expressie*/)
{
// code hier
}
Als beginnend programmeur is het altijd goed om haken te plaatsen. Dit is overzichtelijk en makkelijk te debuggen MITS je je code goed uitgelijnd hebt. De nieuwe pawno wil dat al (loose indentation) en daardoor hou je je overzicht over je code. Zoals John Woods zei:
Quote:
Originally Posted by John woods
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
|
Zoals gezegd wordt de code in de vishaken uitgevoerd alleen als de expressie waar is. Ik zeg het nogmaals, als de EXPRESSIE waar is. Dit kan verwarrend zijn, daarom licht ik het toe met een stuk code:
pawn Код:
if(blueMonkey == false)
{
paintMonkey(blue);
}
Wat nu als we iets anders willen doen als blueMonkey true is? We kunnen een extra if-statement erin doen:
pawn Код:
if(blueMonkey == false)
{
paintMonkey(blue);
}
if(blueMonkey == true)
{
paintMonkey(red);
}
ELSE statements
Er is hoop! Een hoop om te leren
ELSE-statements zijn ervoor om iets te doen als de IF-statement NIET waar is. Let op dat je de ELSE bij de goede haken plaatst en niet laat zweven zonder een if-statement. Deze twee horen bij elkaar, drijf ze alsjeblieft niet uit elkaar
Een else statement ziet er als volgt uit:
pawn Код:
[...]
else {
// code
}
pawn Код:
if(blueMonkey == false)
{
paintMonkey(blue);
} else {
paintMonkey(red);
}
Quote:
als blueMonkey gelijk is aan 'false', voer dan de methode paintMonkey() uit met parameter 'blue'. Anders voer de methode paintMonkey uit met parameter 'red'. |
pawn Код:
if(getMonkeyColour() == blue)
{
// something
} else {
// something
} // maar.. ik wil meer! Wat nu als hij rood, of paars, of geel.. of.... POLKADOT!
ELSE IF statement
Klopt, die hebben we niet genoemd in het begin. een elseif statement is eigenlijk gewoon een extra ifstatement in een else:
pawn Код:
if(getMonkeyColour() == blue)
{
} else if(getMonkeyColour() == red)
{
} else {
// hij is niet blauw en niet rood
}
Met deze kennis kun je ook eenvoudig een switch statement opzetten, maar hierover zet ik meer in een volgende tutorial. Anders is het zo veel voor de eerste keer.
Hoofdstuk 2: Switch statements
Nu je een tijdje hebt gehad om gewend te raken met if en else statements is het nu tijd voor de switch-statement. Een switch statement is eigenlijk een grote verzameling van IF-IFELSE statements. Neem het volgende voorbeeld:
pawn Код:
if(randomNumber == 1) {}
else if(randomNumber == 2) {}
else if(randomNumber == 3) {} // et cetera
Een switch statement begin je met:
pawn Код:
switch(variabele)
pawn Код:
switch(randomNumber)
{
}
pawn Код:
switch(randomNumber)
{
if(randomNumber == 1) elseif(...);
}
pawn Код:
switch(randomNumber)
{
case 1: { printf("OMG"); }
}
pawn Код:
if(randomNumber == 1) { printf("OMG"); }
Om het hele verhaal nu even netjes af te maken met een volledige switch:
pawn Код:
switch(randomNumber)
{
case 1: { printf("OMG"); }
case 2: { printf("NOWAI"); }
case 3: { printf("MONKEYBOY!"); } // dat zijn lekkere koekjes btw :D
}