Even een BREAK vraagje..
5 berichten
• Pagina 1 van 1
Even een BREAK vraagje..
Mensen,
Even een vraagje over het BREAK commando.
Stel ik heb iets als onderstaande code:
Ik heb nog nooit zo'n slecht voorbeeld uit mijn mouw kunnen schudden, en let alsjeblieft niet op de randdingen. Ik moet nog veel leren.
Het gaat er om dat er een loop is en dat ergens Appels 5 of meer worden. (hoe doet er niet toe. Staat ook niet in de code)
Als dan ook de Button is ingedrukt, gebeurt er iets irrelevants. Tenzij de time voorbij de 10 komt (ook hier... hoe en wat is niet belangrijk).
Dan springt het programma met een BREAK uit de loop.
Mijn vraag is nu... HOEVER springt hij uit die loop?
Gaat hij die peren nog increasen? Of spingt hij uit de loop zodat hij elke seconde het Fruit gaat increasen??
Want als je tbv een break een IF statement gebruikt, spingt hij toch alleen uit dat loopje, zou je zeggen?
Het was erg lastig te omschrijven. Mijn excuses voor de codetechnische taalfouten.
Als ik mijn zuurgetypte code nog eens doorneem denk ik dat een Break je uit de eerste loop haalt, omdat een IF statement an sich natuurlijk geen loop is.
Ik hoop dat jullie mij er iets in kunnen verduidelijken.
Even een vraagje over het BREAK commando.
Stel ik heb iets als onderstaande code:
- Code: Alles selecteren
While 1 = 1
{
IF appels > 5
{
IF button == 1
{ doe iets
IF time > 10 then BREAK
}
Peren++
}
Fruit++
delayMS (1000)
}
Ik heb nog nooit zo'n slecht voorbeeld uit mijn mouw kunnen schudden, en let alsjeblieft niet op de randdingen. Ik moet nog veel leren.
Het gaat er om dat er een loop is en dat ergens Appels 5 of meer worden. (hoe doet er niet toe. Staat ook niet in de code)
Als dan ook de Button is ingedrukt, gebeurt er iets irrelevants. Tenzij de time voorbij de 10 komt (ook hier... hoe en wat is niet belangrijk).
Dan springt het programma met een BREAK uit de loop.
Mijn vraag is nu... HOEVER springt hij uit die loop?
Gaat hij die peren nog increasen? Of spingt hij uit de loop zodat hij elke seconde het Fruit gaat increasen??
Want als je tbv een break een IF statement gebruikt, spingt hij toch alleen uit dat loopje, zou je zeggen?
Het was erg lastig te omschrijven. Mijn excuses voor de codetechnische taalfouten.
Als ik mijn zuurgetypte code nog eens doorneem denk ik dat een Break je uit de eerste loop haalt, omdat een IF statement an sich natuurlijk geen loop is.
Ik hoop dat jullie mij er iets in kunnen verduidelijken.
Advertisement
Re: Even een BREAK vraagje..
Het antwoord is hier te vinden:
https://www.arduino.cc/reference/en/language/structure/control-structure/break/
mvg Nico
https://www.arduino.cc/reference/en/language/structure/control-structure/break/
mvg Nico
Re: Even een BREAK vraagje..
Nee, Nico, dat beantwoordt niet mijn vragen.
Dit is ook wat ik over het algemeen al wist over de BREAK functie.
Het gaat mij erom -en dat had ik volgens mij wel goed omschreven in mijn vraag-, hoever de BREAK gaat.
Als er een loop ín een loop zit, waarbij in die laatste loop de BREAK, gaat het programma dan slechts uit die ene loop waar die BREAK in zit?
Of gaat hij dan ook uit de voorgaande loop? (Laat ik voorop stellen dat ik dat onwaarschijnlijk vind, maar ik wilde het zeker weten)
Dit is ook wat ik over het algemeen al wist over de BREAK functie.
Het gaat mij erom -en dat had ik volgens mij wel goed omschreven in mijn vraag-, hoever de BREAK gaat.
Als er een loop ín een loop zit, waarbij in die laatste loop de BREAK, gaat het programma dan slechts uit die ene loop waar die BREAK in zit?
Of gaat hij dan ook uit de voorgaande loop? (Laat ik voorop stellen dat ik dat onwaarschijnlijk vind, maar ik wilde het zeker weten)
Re: Even een BREAK vraagje..
Toch klopt het wel wat bij de Arduino referentie staat.
Een "break" springt uit een for, while en do...while loop. De switch-case is een buitenbeentje waarbij ook een "break" wordt gebruikt.
Naar een "if" wordt helemaal niet gekeken bij een "break".
Als in jouw stukje code een "break" wordt uitgevoerd, dan wordt er niets meer van die code gedaan. Hij springt uit de while-loop en gaat verder met de code die daar onder zou kunnen staan.
Dus dit kan niet, er is helemaal geen statement dat een loop is:
Dit kan wel. Als de "break" wordt uitgevoerd, dan springt hij uit de loop met "k", en gaat verder waar "j" was gebleven (net alsof "k" was afgerond, maar "k" is halverwege afgebroken).
Het is meestal netter om geen "break" te gebruiken. Als je met een logische structuur van je code een "break" kunt voorkomen, dan heeft dat de voorkeur.
Toch gebruik ik regelmatig een "break", bijvoorbeeld als er ergens een fout onstaat.
Een "break" springt uit een for, while en do...while loop. De switch-case is een buitenbeentje waarbij ook een "break" wordt gebruikt.
Naar een "if" wordt helemaal niet gekeken bij een "break".
Als in jouw stukje code een "break" wordt uitgevoerd, dan wordt er niets meer van die code gedaan. Hij springt uit de while-loop en gaat verder met de code die daar onder zou kunnen staan.
Dus dit kan niet, er is helemaal geen statement dat een loop is:
- Code: Alles selecteren
if( i==3)
{
if( j==4)
{
if( k==5)
{
break;
}
}
}
Dit kan wel. Als de "break" wordt uitgevoerd, dan springt hij uit de loop met "k", en gaat verder waar "j" was gebleven (net alsof "k" was afgerond, maar "k" is halverwege afgebroken).
- Code: Alles selecteren
for( i=0; i<3; i++)
{
for( j=0; j<4; j++)
{
for( k=0; k<5; k++)
{
if( l==6)
{
break;
}
}
}
}
Het is meestal netter om geen "break" te gebruiken. Als je met een logische structuur van je code een "break" kunt voorkomen, dan heeft dat de voorkeur.
Toch gebruik ik regelmatig een "break", bijvoorbeeld als er ergens een fout onstaat.
Re: Even een BREAK vraagje..
Ik had al zo'n vermoeden...
Waar ik op klem zat, was dat ik een If/then vroeger nog wel eens verving voor een While/Wend in Basic. En dan was het een loop.
Maar een Ordinaire If {} is natuurlijk geen loop maar kan wel een break triggeren om uit de loop (waar de IF {} deel van uitmaakt) te komen.
Tx voor de verheldering.
Waar ik op klem zat, was dat ik een If/then vroeger nog wel eens verving voor een While/Wend in Basic. En dan was het een loop.
Maar een Ordinaire If {} is natuurlijk geen loop maar kan wel een break triggeren om uit de loop (waar de IF {} deel van uitmaakt) te komen.
Tx voor de verheldering.
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten