goto of break comando

Arduino specifieke Software
Berichten: 7
Geregistreerd: 28 Feb 2016, 16:51

goto of break comando

Berichtdoor arjan » 28 Feb 2016, 17:38

kan iemand mij helpen ik heb een if lus gemaakt maar ik wil dat er na een bepaalde voor waarde uit de lus wordt gesprongen kan iemand mij een duidelijk voor beeld geven zit te prutsen met goto en break maar het lukt mij niet goed.tevens een vraag als ik while comando of do ..while gebruik ik een bepaalde ingang hoog maak voerd hij het programma uit wat ik wil maar als ik dan de ingang laag maak blijft hij in dat stukje programma zitten pas als ik reset de arduino dan is hij uit dat stukje programma hoe kan ik dat zo maken dat het programma verder gaat als die ingang laag is gemaakt.

cpp code
//als druk knop L bediend is is relais 1 uit en relais 2 aan
if((R == LOW) && (L == HIGH)){
digitalWrite(relais1,HIGH);
digitalWrite(relais2,LOW);
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("RECHTSOM >>>>>>>> ");

if (eind < 100){goto out;}

}
delay(200);

out:
while (eind < 100 ) {
digitalWrite(relais1,HIGH);
digitalWrite(relais2,HIGH);
lcd.setCursor(0, 0);
lcd.print("EINDCONTACT !!!!");

}

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: goto of break comando

Berichtdoor nicoverduin » 28 Feb 2016, 17:43

Wel eens een van punten gehoord om een zin af te sluiten.....Ik snap geen bal van wat je nu eigenlijk wilt.. Ik voel er weinig voor om deze cryptische omschrijving uit te pluizen.
Maar uit de eerste zin kan ik je wel gelijk meedelen dat de if() geen lus maakt maar het volgende blok dat tussen accolades ( {...... } ) uitvoert als de conditie waar is. Daarna gaat hij gewoon verder. Dus niet eindeloos door.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: goto of break comando

Berichtdoor shooter » 28 Feb 2016, 18:09

vroeger was het inderdaad normaal om goto te gebruiken, dat is vervangen door break (alhowel het nog steeds kan hoor.)

tegenwoordig schrijven we alles in functies en subs.
dat betekent vaak wel een omdenken,
als het even kan dan moet je goto vermijden, want dan moet het prgramma wat ergens mee bezig was (en dus dingen onthoudt) ineens weg. en blijven er dus gegevens op de 'stack' staan.
met break heb je daar minder last van.
verder is het gebruikelijk om een loop te maken die razendsnel allerlei functies aanroept die op dat moment nodig zijn.
dus bijv. if (eind <100){out;}
als out dan klaar is gaat het programma op de volgende regel verder, met goto stopt het programma bij de lcd.print want daar staat niks onder.

while do while
als je schrijft while (...) do dan kijkt het programma of de waarde true is, zo ja dan wordt {} uitgevoerd. zo niet dan gaat het programma gelijk naar de } verder.
als je schrijft do{......}
while (....)dan wordt eerst uitgevoerd en dan pas getest.
haal de goto maar weg dat is al genoeg.
(wel nog even een opmerking dat er dan heel vaak naar het display geschreven wordt, en dat moet je dus beperken tot 1 keer dus die while moet nog een vlag bij zoiets als
if eind <100 && vlag!=true){vlag=true.....}else {vlag=false}
paul deelen
shooter@home.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 84 gasten