Περιγραφή

Η συνθήκη for χρησιμοποιείται για την επανάληψη ενός συνόλου συνθηκών που περικλείονται σε άγκιστρα. Συνήθως χρησιμοποιείται ένας μετρητής προσαύξησης για να αυξήσει και να τερματίσει τον βρόχο. Η συνθήκη for είναι χρήσιμη για κάθε επαναληπτική λειτουργία και συχνά χρησιμοποιείται σε συνδυασμό με συστοιχίες για την λειτουργία της συλλογής των δεδομένων και ακροδεκτών.

Η επικεφαλίδα του βρόχου for αποτελείται από τρία μέρη:

for (initialization; condition; increment) {

//statement(s);

} 
Η εικόνα δημιουργήθηκε από το arduino.cc

Πρώτη πραγματοποιείται η αρχικοποίηση (initialization) και ακριβώς μόνο μια φορά. Κάθε φορά η κατάσταση (condition) ελέγχεται μέσω του βρόχου. Εάν είναι αληθής, τότε εκτελείται το κομμάτι της συνθήκης καθώς και η προσαύξηση (increment). Όταν η συνθήκη γίνεται ψευδής, τότε ο βρόχος σταματά.

Παράδειγμα

Save

// Dim an LED using a PWM pin
int PWMpin = 10; // LED in series with 470 ohm resistor on pin 10

void setup()
{
  // no setup needed
}

void loop()
{
   for (int i=0; i <= 255; i++){
      analogWrite(PWMpin, i);
      delay(10);
   } 
}

Συμβουλές για τον κώδικα

Save
Η συνθήκη C για τον βρόχο for είναι πολύ πιο ευέλικτη από ότι οι βρόχοι for που βρέθηκαν σε μερικές άλλες γλώσσες υπολογιστών, συμπεριλαμβανομένης της BASIC. Από τα τρία στοιχεία της επικεφαλίδας, οποιοδήποτε ή όλα μπορούν να παραλειφθούν. Ωστόσο τα ερωτηματικά είναι αναγκαία. Επίσης, οι δηλώσεις για την αρχικοποίηση, την κατάσταση και την προσαύξηση μπορεί να είναι οποιεσδήποτε έγκυρες δηλώσεις C με άσχετες μεταβλητές καθώς και η χρησιμοποίηση οποιονδήποτε τύπων δεδομένων C συμπεριλαμβανομένης των υποδιαστολών. Αυτοί οι τύποι των ασυνήθιστων δηλώσεων for, μπορούν να παρέχουν λύσεις σε ορισμένα σπάνια προβλήματα προγραμματισμού.

Για παράδειγμα, η χρησιμοποίηση του πολλαπλασιασμού στη γραμμή προσαύξησης, θα δημιουργήσει μια λογαριθμική πρόοδο:

for(int x = 2; x < 100; x = x * 1.5){
println(x);
}

Αυτό παράγει: 2, 3, 4, 6, 9, 13, 19, 28, 42, 63, 94

Ένα άλλο παράδειγμα που αναβοσβήνει ένα led μόνο με έναν βρόχο for είναι το εξής:

void loop()
{
   int x = 1;
   for (int i = 0; i > -1; i = i + x){
      analogWrite(PWMpin, i);
      if (i == 255) x = -1;             // switch direction at peak
      delay(10);
   } 
}

Επιστροφή στην σελίδα Παραπομπές Γλώσσας

Save