Εντολές Επανάληψης

Η for:

Η γενικευμένη σύνταξη της εντολής είναι:

for (εντολή1; <ΣΥΝΘΗΚΗ>; εντολή2) ΕΝΟΤΗΤΑ  

Η ΕΝΟΤΗΤΑ μπορεί να είναι μία ή περισσότερες εντολές (block) μέσα σε άγκιστρα ({,}). Η εντολή1 μπορεί να είναι και περισσότερες από μία εντολές που συνήθως καθορίζουν κάποιες αρχικές τιμές. Η <ΣΥΝΘΗΚΗ> είναι συνήθως ο έλεγχος μιάς έκφρασης συσχετισμού (ή και κάποιας λογικής έκφρασης) ενώ η εντολή2 είναι συνήθως μιά παράσταση αύξησης . Η ανάπτυξη της εντολής for είναι η εξής: 

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής. Παράδειγμα:

for (i = 0; i < 10; i++)
       printf("%d\n", i);

Εκτελείται η εντολή1 (i=0) και συνέχιζει  να αυξάνει το i (εντολή2) και να τυπώνει το i (ΕΝΟΤΗΤΑ- η εντολή printf),  όσο η συνθήκη i<1,  είναι αληθής. ΄Το παρακάτω πρόγραμμα ζητάει επαναληπτικά τους βαθμούς 10 σπουδαστών και υπολογίζει το άθροισμα των βαθμών (total) και τον μέσο όρο αυτών:

#include <stdio.h>

float bathmos;
float total = 0.0;
int counter;

main()
{
for (counter = 1; counter <= 10; counter++)
   {
      printf("Enter the score of student %d: ", counter);
      scanf("%f", &bathmos);
       /* Προσθέτω τον βαθμό στην μεταβλητή total */
       total += bathmos;
    }
printf("The total score is %lf", total);
printf("The average score is %lf", (total / 10));
}

Δείτε αυτό:

for (c='A', c <='Z' ++c)
               putchar(c);

Τυπώνονται τα κεφαλαία γράμματα της λατινικής αλφαβήτου. 

Δείτε και αυτό:

for ( ;  ; )
       { ENOTHTA }

Πρόκειται για βρόγχο που δεν σταματά ποτέ. Είναι άραγε χρήσιμοι στον προγραμματισμό;

Η εντολή while:

Σύνταξη της εντολής:

 

while (<ΣΥΝΘΗΚΗ>) 

            ΕΝΟΤΗΤΑ.

 Η <ΣΥΝΘΗΚΗ> μπορεί να είναι λογική έκφραση, έκφραση συσχετισμού, αποτέλεσμα κάποιας πράξης, είτε ακόμα και κάποια μεταβλητή. Η ΕΝΟΤΗΤΑ μπορεί να είναι μία ή περισσότερες εντολές (block) μέσα σε άγκιστρα ({,}). 
Η ανάπτυξη του while είνα:

Συνέχισε να εκτελείς τις εντολές της ΕΝΟΤΗΤΑΣ, όσο η έκφραση είναι αληθής. 

Το προηγούμενο παράδειγμα με την εντολή while:

#include <stdio.h>

float bathmos;
float total = 0.0;
int counter;

main()
{
counter = 1;
while (counter < =10)
{
     printf("Enter the score of student %d: ", counter);
     scanf("%f", &bathmos);
     /* Add the current score to the total */
     total += bathmos;
     counter++;
}
printf("The total score is %lf", total);
printf("The average score is %lf", (total / 10));
}

Η do -while:

Σύνταξη της εντολής:

 

do 

     ΕΝΟΤΗΤΑ 

while (<ΣΥΝΘΗΚΗ>) 

 

Η <ΣΥΝΘΗΚΗ> μπορεί να είναι λογική έκφραση, έκφραση συσχετισμού, αποτέλεσμα κάποιας πράξης, είτε ακόμα και κάποια μεταβλητή. Η ΕΝΟΤΗΤΑ μπορεί να είναι μία ή περισσότερες εντολές (block) μέσα σε άγκιστρα ({,}). 
Η ανάπτυξη του do while είνα:

Εκτέλεση της ENOTHTAΣ μέχρι η ΣΥΝΘΗΚΗ να μην είναι αληθής (ο έλεγχος εδώ γίνεται στο τέλος του βρόγχου).

 

To ίδιο παράδειγμα με την εντολή do-while

 

#include <stdio.h>

float bathmos;
float total = 0.0;
int counter;

main()
{
counter = 1;
do
{
    printf("Enter the score of student %d: ", counter);
    scanf("%f", &bathmos);
    /* Add the current score to the total */
    total += bathmos;
    counter++;
}
while (counter <= 10);
printf("The total score is %lf", total);
printf("The average score is %lf", (total / 10));
}

Η C επίσης υποστηρίζει τις παρακάτω εντολές ελέγχου, που χρησιμοποιούνται γιά τον τερματισμό ή την συνέχιση μιάς επανάληψης: 

Την break:
Τερματισμός την εκτέλεση μιάς επανάληψης και συνεχίζει το πρόγραμμα μετά από αυτήν (δείτε την προηγούμενη ενότητα - Εντολές Ελέγχου

Και την continue: 
Που σταματά την εκτέλεση των εντολών της επανάληψης και συνεχίζει την επενάληψη αν συνεχίζει να είναι αληθής η ΣΥΝΘΗΚΗ από την αρχή του βρόγχου. 

 

 
Στην προηγούμενη ενότητα

Στην αρχική σελίδα

Στην επόμενη ενότητα

Κ.Βασιλάκης / ΤΕΙ Κρήτης