arduino
Pętle
Szukaj…
Składnia
- dla (deklaracja, warunek, iteracja) {}
- while (warunek) {}
- do {} while (warunek)
Uwagi
General Remark
Jeśli zamierzasz utworzyć pętlę, aby poczekać, aż coś się wydarzy, prawdopodobnie jesteś na niewłaściwym torze. Pamiętaj raczej, że cały kod po setup () jest uruchamiany z metody zwanej loop (). Więc jeśli musisz na coś poczekać, najłatwiej jest nic nie robić (lub tylko inne niezależne rzeczy) i wrócić w celu sprawdzenia stanu oczekiwania następnym razem.
do { } while(condition)
nie oceni instrukcji warunku przed pierwszą iteracją. Należy o tym pamiętać, jeśli oświadczenie o stanie ma skutki uboczne.
Podczas
while
pętla oceni jego stan, a jeśli true
, to wykonać wewnątrz kodu i zacząć od nowa. Oznacza to, że tak długo, jak jego warunek jest true
, while
pętla wykona kółko.
Ta pętla zostanie wykonana 100 razy, za każdym razem dodając 1 do zmiennej num
:
int num = 0;
while (num < 100) {
// do something
num++;
}
Powyższa pętla jest równoważna pętli for
:
for (int i = 0; i < 100; i++) {
// do something
}
Ta pętla będzie działać wiecznie:
while (true) {
// do something
}
Powyższa pętla jest równoważna pętli for
:
for (;;) {
// do something
}
Dla
for
pętelki są uproszczone składnię bardzo często wzór pętla, co może być dokonane w kilku liniach o while
pętli.
Poniżej przedstawiono typowy przykład pętli for
, która wykona się 100 razy, a następnie zatrzyma się.
for (int i = 0; i < 100; i++) {
// do something
}
Jest to równoważne z while
pętli:
int num = 0;
while (num < 100) {
// do something
num++;
}
Możesz utworzyć nieskończoną pętlę, pomijając warunek.
for (;;) {
// do something
}
Jest to równoważne z while
pętli:
while (true) {
// do something
}
Czy ... Podczas
do while
pętla jest taka sama jak while
pętli, oprócz tego, że jest ona gwarantowana wykonać co najmniej jeden raz.
Następująca pętla zostanie wykonana 100 razy.
int i = 0;
do {
i++;
} while (i < 100);
Podobna pętla, ale z innym warunkiem, zostanie wykonana 1 raz.
int i = 0;
do {
i++;
} while (i < 0);
Gdyby powyższa pętla była tylko while
pętlą, wykonałaby 0 razy, ponieważ warunek miałby wartość false
przed pierwszą iteracją. Ale ponieważ jest to do while
pętla, wykonuje jeden raz, a następnie sprawdza jego stan przed wykonaniem ponownie.
Kontrola przepływu
Istnieje kilka sposobów na przerwanie lub zmianę przepływu w pętli.
break;
wyjdzie z bieżącej pętli i nie wykona więcej linii w tej pętli.
continue;
nie wykona żadnego kodu w bieżącej iteracji pętli, ale pozostanie w pętli.
Następująca pętla wykona 101 razy (i = 0, 1, ..., 100) zamiast 1000, z powodu instrukcji break
:
for (int i = 0; i < 1000; i++) {
// execute this repeatedly with i = 0, 1, 2, ...
if (i >= 100) {
break;
}
}
Następująca pętla spowoduje, że wartość j
będzie j
50 zamiast 100, z powodu continue
instrukcji:
int j=0;
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) { // if `i` is even
continue;
}
j++;
}
// j has the value 50 now.