Arduino – Ciklusok

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);
}


Arduino Mega 2560 mikrokontroller kártya

Arduino Mega 2560
Arduino Mega 2560 – hirdetés

A következő részben a függvényeket nézzük át.