A ciklusok lehetővé teszik, hogy bizonyos programrészeket többször is végrehajtsuk. A ciklusok segítségével bizonyos helyzetekben tömörebbé, tehetjük a kódot. Vegyük sorra őket.
while ciklus
A while ciklus folyamatosan fog futni, amíg a zárójelben lévő feltétel igaz. Valaminek meg kell változtatnia a zárójelben lévő változó értékét, különben a while ciklus soha nem fog kilépni. Ez lehet a kódbokkban, például növekményes változóban, vagy egy külső állapotban, például egy bemeneti pin állapotváltozásában.
while(feltétel)
{
// utasítás
}
Az alábbi példában a while ciklus addíg fut, amíg a változó értéke 10-nél kevesebb.
int myVariable = 0;
while (myVariable < 10)
{
myVariable++;
}
while végtelen ciklus:
while(true)
{
// örökké fut
}
do…while ciklus
A do…while ciklus ugyanúgy működik, mint a while ciklus, azzal a kivétellel, hogy a feltételt a ciklus végén teszteljük, így a do…while ciklus mindig legalább egyszer lefut. A do…while ciklust hátultesztelő ciklusnak is nevezik. A következő példában szereplő do…while ciklus 10-szer végrehajtódik, mert amikor a feltétel hamis lesz a kódblokk már lefutott.
int myVariable = 0;
do
{
myVariable++;
} while(myVariable < 10);
for ciklus
A for ciklusnak három kifejezése van. Ezek határozzák meg annak működését. A for ciklus argumentum zárójelében található három kifejezés pontosvesszővel van elválasztva. Az első kifejezésben inicializáljuk a ciklusváltozót. A második kifejezés a ciklus feltétele, amíg ez igaz a for ciklus fut. A harmadik kifejezésben változtatjuk a ciklusváltozó értékét.
for(int index = 0; index <= 10; index++)
{
// kód
}
A for végtelen ciklus:
for( ; ; )
{
// örökké fut
}
Az for ciklust gyakran tömbökkel használják, például az adatok kinyerésére vagy tömbok feltöltésére.
int myIntArray[] = {1,2,3,4};
for ( int i = 0; i < 4; ++i)
{
Serial.print(myIntArray[i]);
Serial.print (", ") ;
}
int myIntArray[4];
for ( int i = 0; i < 4; ++i)
{
myIntArray[i] = i + 1;
}
for ciklusokat egymásba is ágyazhatunk.
char myCharArray[4][5] = {"row1","row2","row3","row4" };
for ( int i = 0; i < 4; ++i )
{
for (int j = 0; j < 4; j++)
{
Serial.print(myCharArray[i][j]);
}
}
break
A break utasítást for, while vagy do…while ciklusokból kilépésre használjuk, vagy, hogy kilépjen egy switch case utasításból.
Az alábbi példában ha az i változó értéke 5 lesz, a ciklus befejezi a futását. az utolsó kinyomtatott karakter a 4 lesz.
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break;
}
Serial.println(i);
}
continue
A continue utasítás megszakít egy iterációt a ciklusban, ha egy meghatározott feltétel bekövetkezik, és a ciklus következő iterációjával folytatja.
Ez a példa kihagyja a 5 értékét:
for(int i = 0; i < 10; i++)
{
if (i == 5)
{
continue;
}
Serial.println(i);
}
A következő részben a függvényeket nézzük át.