statements met switch en cases
Ik was deze statement voorbeeld aan het bestuderen maar ik mis de operators na de case?
Wat is het probleem?
Zou je als je een post maakt / topic opent voor dat je schrijft willen bedenken wat je wilt zeggen.
Jou berichten zijn cryptisch. Wij weten jou probleem niet. Wij kunnen niet zien wat jij wilt.
Zie het alsof je het tegen een onbekende hebt, dat heb je immers ook.
Het stukje code in mijn eerste post gaat over Switch statements.
Je kan het vinden op deze pagina:
phptuts statements
De switch statement is een vervanger voor een hele reeks elsif statements.
Het is eerste voorbeeld wat er op deze website te zien is.
Daar valt me op dat bij het eerste voorbeeld geen Operators per case wordt geschreven. En dat ziet er zo uit:
case 0 :
echo '$x is gelijk aan 0';
break;
Maar bij het tweede voorbeeld wel. En dat ziet er zo uit voor een case:
case $x > 10 :
echo '$x is groter dan 10';
break;
Misschien kijk ik er overheen?
Maar zonder operator gaat deze code niet werken dacht ik, of wel soms?
Hoe zit dat? Is dat expres zo gedaan voor de tutorial of is dat echt een fout?
Ben ik zo duidelijker misschien? Oke ik ga het proberen als beginner.
Heb je die code getest?
Als je dat gedaan hebt dan heb je gemerkt dat '$x is gelijk aan 1' wordt getoond.
Een switch kijkt normaal gesproken (dus als je niet anders opgeeft) of de case waarde gelijk is aan de waarde van de switch.
Een operator beïnvloed dus de standaard werking. Zo ben je inderdaad duidelijk.
De eerste case is correct, de tweede niet.
Switch($x) wil zeggen dat je de waarde van $x gaat vergelijken met wat er achter case staat.
In het geval van de tweede case had er eerder switch(true) moeten staan.
zou er helemaal geen ontwikkeling in mijn phpstudie zitten. Dus ik ben dit forum echt heel dankbaar.
Ik vind het moeilijk om het in een keer goed uit te leggen. Dus dat zal wel nog vaker voorkomen. Nu denk ik:' Ik krijg het niet uitgelegd. Daardoor moet ik
verder kijken dan mijn 'denkbereik'.
Om het nog duidelijker uit te leggen, ik doel op het eerste voorbeeld in mijn eerste post, de regel die begint met het woord "case" . Daar achter staat een getal. Is dat het getal van het casenummer. Of is dat een cijfer voor de wiskundige vergelijking in php? Het gaat er mij om dat ik het begrijp en kan doorgronden met een begrip die ik hier probeer op te schrijven. Maar dat is nog niet zo eenvoudig. Zonder forum
Want op de website zijn dat twee van elkaar gescheiden voorbeelden.
Dit is dus fout begrepen om het zo te schrijven:
switch($x)
{
case 0 :
echo '$x is gelijk aan 0';
break;
case $x > 10 :
echo '$x is groter dan 10';
break;
}
Sorrie, daar kan jij ook niks aan doen dat je dingen door me kaar haalt.
Kijk eens op deze website: http://www.phptuts.nl/view/39/4/
onder de woorden "Switch statement".
Met het eerste en het tweede voorbeeld. Bedoel ik de phpcode die een voorbeeld zijn op deze website.
Het eerste voorbeeld van de phpcode staat in mijn eerste post.
Dit voorbeeld begrijp ik niet om dat er een getal in het blauw achter het woord "case" staat, en ik begrijp niet waar voor dat getal is bedoelt.
Het tweede voorbeeld phpcode staat op die website: phptuts.nl/view/39/4/
onder de woorden "Ingewikkeldere statements zijn echter ook mogelijk in een switch:".
Dit voorbeeld snap ik wel omdat daar duidelijk achter het woord "case" een operator is geschreven. (een wiskundige vergelijking)
Dus mijn vraag is ; op welke manier moet ik het cijfer achter het woord "case"
begrijpen zoals in het eerste voorbeeld waar in het blauw alleen maar een cijfer staat en geen 'vergelijking met een operator'? Dit bedoelde ik dus helemaal niet: en heb ik ook niet geschreven.
Dit zou je ook met if()-jes kunnen schrijven maar een switch() is overzichtelijker. Zo ziet dezelfde code eruit zonder switch().
Dus er wordt steeds gekeken of de waarde die in de switch(...) staat gelijk is aan de waarde die achter 'case' staat. In dit geval wordt dus gekeken of $x (in dit geval 1) gelijk is (==) aan de waarde achter 'case' (resp. 0, 1, 2). De 'default' wordt gebruikt als er geen enkele waarde overeen komt. Dat is de standaard 'else' bij een if().
Het tweede voorbeeld is niet correct.
Het werkt echter meestal wel. Maar bij $x=0 gaat het gigantisch fout. Hier zou switch($x) vervangen moeten worden door switch(true) dan is het wel correct. Het eerste voorbeeld is geheel correct.
Dus er wordt steeds gekeken of de waarde die in de switch(...) staat gelijk is aan de waarde die achter 'case' staat.
De waarde die achter de 'case' staat is blauw gekleurd.
Als het alleen een cijfer betreft zoals 'n '0' of '1' of '2' .
Dan was dat voor mij een verwarring.
Want case 0 had voor mij ook case A kunnen zijn. Ik begreep dat het
een naam zou zijn van de case in plaats van een waarde voor de vergelijking.
Ik wis niet dat die blauwe cijfer '0' of '1' of '2' achter 'case de vergelijking treft.
Snap je nu waar het mij omgaat? Je schrijft:
Hier nog een keer maar dan met een tekst en twee totaal verschillende getallen.
Ik hoop dat het dan duidelijker is.
Ja, het feit dat er 0, 1 en 2 staat kan inderdaad verwarrend zijn.
Nu snap ik het door en door, en kan ik verder naar loops.
Maar loops vind ik geen makkelijke. Bedankt, je hebt je best gedaan !
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Evarie schreef op 08.01.2010 17:22:
Ik was deze statement voorbeeld aan het bestuderen maar ik mis de operators na de case?
Zou je als je een post maakt / topic opent voor dat je schrijft willen bedenken wat je wilt zeggen.
Jou berichten zijn cryptisch. Wij weten jou probleem niet. Wij kunnen niet zien wat jij wilt.
Zie het alsof je het tegen een onbekende hebt, dat heb je immers ook.
Het stukje code in mijn eerste post gaat over Switch statements.
Je kan het vinden op deze pagina:
phptuts statements
De switch statement is een vervanger voor een hele reeks elsif statements.
Het is eerste voorbeeld wat er op deze website te zien is.
Daar valt me op dat bij het eerste voorbeeld geen Operators per case wordt geschreven. En dat ziet er zo uit:
case 0 :
echo '$x is gelijk aan 0';
break;
Maar bij het tweede voorbeeld wel. En dat ziet er zo uit voor een case:
case $x > 10 :
echo '$x is groter dan 10';
break;
Misschien kijk ik er overheen?
Maar zonder operator gaat deze code niet werken dacht ik, of wel soms?
Hoe zit dat? Is dat expres zo gedaan voor de tutorial of is dat echt een fout?
Ben ik zo duidelijker misschien?
Gewijzigd op 01/01/1970 01:00:00 door Evarie Linux
Heb je die code getest?
Als je dat gedaan hebt dan heb je gemerkt dat '$x is gelijk aan 1' wordt getoond.
Een switch kijkt normaal gesproken (dus als je niet anders opgeeft) of de case waarde gelijk is aan de waarde van de switch.
Een operator beïnvloed dus de standaard werking.
Evarie schreef op 08.01.2010 20:59:
switch($x)
{
case 0 :
echo '$x is gelijk aan 0';
break;
case $x > 10 :
echo '$x is groter dan 10';
break;
}
{
case 0 :
echo '$x is gelijk aan 0';
break;
case $x > 10 :
echo '$x is groter dan 10';
break;
}
De eerste case is correct, de tweede niet.
Switch($x) wil zeggen dat je de waarde van $x gaat vergelijken met wat er achter case staat.
In het geval van de tweede case had er eerder switch(true) moeten staan.
zou er helemaal geen ontwikkeling in mijn phpstudie zitten. Dus ik ben dit forum echt heel dankbaar.
Ik vind het moeilijk om het in een keer goed uit te leggen. Dus dat zal wel nog vaker voorkomen. Nu denk ik:' Ik krijg het niet uitgelegd. Daardoor moet ik
verder kijken dan mijn 'denkbereik'.
Om het nog duidelijker uit te leggen, ik doel op het eerste voorbeeld in mijn eerste post, de regel die begint met het woord "case" . Daar achter staat een getal. Is dat het getal van het casenummer. Of is dat een cijfer voor de wiskundige vergelijking in php?
Is mijn korte uitleg duidelijk genoeg?
Want op de website zijn dat twee van elkaar gescheiden voorbeelden.
Dit is dus fout begrepen om het zo te schrijven:
switch($x)
{
case 0 :
echo '$x is gelijk aan 0';
break;
case $x > 10 :
echo '$x is groter dan 10';
break;
}
Sorrie, daar kan jij ook niks aan doen dat je dingen door me kaar haalt.
Kijk eens op deze website: http://www.phptuts.nl/view/39/4/
onder de woorden "Switch statement".
Met het eerste en het tweede voorbeeld. Bedoel ik de phpcode die een voorbeeld zijn op deze website.
Het eerste voorbeeld van de phpcode staat in mijn eerste post.
Dit voorbeeld begrijp ik niet om dat er een getal in het blauw achter het woord "case" staat, en ik begrijp niet waar voor dat getal is bedoelt.
Het tweede voorbeeld phpcode staat op die website: phptuts.nl/view/39/4/
onder de woorden "Ingewikkeldere statements zijn echter ook mogelijk in een switch:".
Dit voorbeeld snap ik wel omdat daar duidelijk achter het woord "case" een operator is geschreven. (een wiskundige vergelijking)
Dus mijn vraag is ; op welke manier moet ik het cijfer achter het woord "case"
begrijpen zoals in het eerste voorbeeld waar in het blauw alleen maar een cijfer staat en geen 'vergelijking met een operator'?
Gewijzigd op 01/01/1970 01:00:00 door Evarie Linux
Code (php)
Dit zou je ook met if()-jes kunnen schrijven maar een switch() is overzichtelijker. Zo ziet dezelfde code eruit zonder switch().
Code (php)
Dus er wordt steeds gekeken of de waarde die in de switch(...) staat gelijk is aan de waarde die achter 'case' staat. In dit geval wordt dus gekeken of $x (in dit geval 1) gelijk is (==) aan de waarde achter 'case' (resp. 0, 1, 2). De 'default' wordt gebruikt als er geen enkele waarde overeen komt. Dat is de standaard 'else' bij een if().
Het tweede voorbeeld is niet correct.
Code (php)
Het werkt echter meestal wel. Maar bij $x=0 gaat het gigantisch fout. Hier zou switch($x) vervangen moeten worden door switch(true) dan is het wel correct.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Dus er wordt steeds gekeken of de waarde die in de switch(...) staat gelijk is aan de waarde die achter 'case' staat.
De waarde die achter de 'case' staat is blauw gekleurd.
Als het alleen een cijfer betreft zoals 'n '0' of '1' of '2' .
Dan was dat voor mij een verwarring.
Want case 0 had voor mij ook case A kunnen zijn. Ik begreep dat het
een naam zou zijn van de case in plaats van een waarde voor de vergelijking.
Ik wis niet dat die blauwe cijfer '0' of '1' of '2' achter 'case de vergelijking treft.
Snap je nu waar het mij omgaat?
Gewijzigd op 01/01/1970 01:00:00 door Evarie Linux
Hier nog een keer maar dan met een tekst en twee totaal verschillende getallen.
Ik hoop dat het dan duidelijker is.
Nu snap ik het door en door, en kan ik verder naar loops.
Maar loops vind ik geen makkelijke.