void RobotLine::loop() {
go (50, 50);
while(front() < 100){
stop();
noLoopWithoutThis();
}
}
Sama funkcija "loop()" je određeni vid "petlje", dijela koda koji se ponavlja. Iako još nije, zatrebat će nam petlje unutar samih ponavljajućih funkcija.
Promotrimo kod lijevo. Prva naredba pokreće (u svakom prolasku kroz ovu ponavljajuću funkciju) robota naprijed.
Slijedi
while, nova konstrukcija. Ova naredbe počinje blok naredbi, koji će slijediti između vitičastih zagrada nakon "while", koji će se izvršavati sve dok je izraz u zagradama istinit.
Izraz je "front() < 100", znači istinit je kad je prepreka naprijed na manje od 100 mm.
Između vitičastih zagrada su 2 naredbe. Prva zaustavlja motore. Robot staje ispred prepreke, npr. kad stavimo ruku ispred njega.
noLoopWithoutThis() je nova naredba. Nema veze s C++ jezikom, nego je naredba koja izmjenjuje poruke između našeg mikrokontrolera, senzora i motora. Ona se mora
uvijek uključiti u lokalnu petlju. Ne učinimo li to, poruke će stati: senzori neće slati nove vrijednosti, niti će motori primati naše naredbe.
Ova naredba je cijena koju moramo platiti kad radimo lokalne petlje. Kad je naša petlja sama funkcija "loop()" ili neka druga, poruke se automatski izmjenjuju.
Lokalne petlje se gotovo uvijek mogu izbjeći u našoj okolini, ali će Vam olakšati programiranje pa ćemo ih koristiti.