Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

czwartek, 10 lutego 2011

Kurs języka C: Pętla: for(...) { ... }


Autor: Dondu

Kurs języka C: Spis treści

Pętla for( ) jest bardzo rozbudowaną pętlą, która w jednej linijce kodu zawiera trzy argumenty determinujące jej wykonanie. Podstawowa składnia pętli:

  for( wyrazenie1 ; wyrazenie2 ; wyrazenie3 )
  {
    //tutaj kod do wykonania
  }

Argumenty:
  • wyrazenie1 - to wyrażenie wykonywane przed pierwszym wykonaniem pętli. Najczęściej jest to deklaracja zmiennej służącej jako licznik poszczególnych kroków wykonywanej pętli.
  • wyrazenie2 - to wyrażenie determinujące moment zakończenia wykonywania pętli, która wykonuje się tak długo, jak długo wyrazenie2 jest spełnione.
  • wyrazenie3 - to wyrażenie wykonywane po każdym kroku pętli. Najczęściej są to instrukcje zwiększające lub zmniejszające licznik kroków pętli.


Poniżej przykład najczęściej spotykanego przypadku wykorzystania pętli for( ):

Przykład 1 (w kompilatorze)
  int a;  //licznik kroków pętli
  
  //rozpocznij od a=0
  //zakończ gdy a=4 (a jest liczbą całkowitą)
  //po wykonaniu każdego kroku pętli zwiększ a o jeden
  for( a=0 ; a<5 ; a++)
  {
    //tutaj kod do wykonania
  }
Sprawdź w kompilatorze CManiak, czy kod przykładu 1 wykonuje się tak jak sądzisz.


Możesz pominąć pierwszy argument, jeżeli wcześniej zadeklarowałeś odpowiednio zmienne wykorzystywane w pozostałych argumentach pętli for( ).

Przykład 2 (w kompilatorze)
  int a=2;  //licznik kroków pętli
  
  //rozpocznij od a=2, gdyż tak zadeklarowaliśmy powyżej
  //zakończ gdy a=4 (a jest liczbą całkowitą)
  //po wykonaniu każdego kroku pętli zwiększ a o jeden
  for( ; a<5 ; a++)
  {
    printf("a=%d \\n", a);
  }      

Możesz także nie podawać trzeciego argumentu przenosząc go do środka pętli.

Przykład 3 (w kompilatorze)
  int a=2;  //licznik kroków pętli
  
  //rozpocznij od a=2
  //zakończ gdy a=4 (a jest liczbą całkowitą)
  //po wykonaniu każdego kroku pętli zwiększ a o jeden
  for(; a<5 ;)
  {
    //tutaj kod do wykonania    

    a++;    
  }

Czy tak zmieniona pętla for( ) nie przypomina Ci czegoś?

  int a=2;  //licznik kroków pętli
  for(; a<5 ;)
  {
    //tutaj kod do wykonania
    a++;    
  }

  //odpowiada pętli

  int a=2;  //licznik kroków pętli
  while(a<5)
  {
    //tutaj kod do wykonania
    a++;    
  }
Więcej na temat pętli: while(...) {...}
.



Break

Czasami zachodzi potrzeba przerwania wykonywania pętli pomimo, że warunek jest nadal spełniony.
Służy do tego instrukcja break.

Przykład 4 (w kompilatorze)
  for( a=0 ; a<5 ; a++)
  {
    //przerwij pętlę, gdy a=3
    if(a == 3) break; 
  }


Continue

Za pomocą tej instrukcji, można w dowolnym miejscu pętli nakazać przerwanie wykonywania aktualnej iteracji i rozpocząć wykonywanie następnej.

Innymi słowy wykonywanie kodu wewnątrz pętli zostanie przerwane i nastąpi wykonanie kodu pętli od jego początku, ale tylko wtedy, gdy warunek (czyli wyrazenie2) nadal będzie spełniony.

Przykład 5 (w kompilatorze)
  for( a=0 ; a<5 ; a++)
  {
    //tutaj jakiś kod

    if(a == 2) continue; //nie wykonuj poniższego kodu pętli, gdy a=2

    //tutaj jakiś kod
  }
Po uruchomieniu powyższego przykładu w kompilatorze CManiak zauważysz, że krok gdy a=2 został przerwany i wykonany następny.


Kurs języka C: Spis treści

27
Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

1 komentarz:

  1. W przykładzie 2 jest błąd, a mianowicie dodatkowa kreska po printif jak jest przeniesienie do następnej linii (\\n).

    OdpowiedzUsuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.