Εντολές Επανάληψης |
Η 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, είναι αληθής.
Παρατηρήσεις για τη for:
Παραδείγματα:
Το παρακάτω πρόγραμμα ζητάει επαναληπτικά τους βαθμούς 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:
Το προηγούμενο παράδειγμα με την εντολή 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Σ μέχρι η ΣΥΝΘΗΚΗ να γίνει ψευδής.
Παρατηρήσεις για τη while:
Τo ίδιο παράδειγμα με την εντολή 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:
Xρησιμοποιείται
για ηθελημένο τερματισμό ενός βρόχου (for, while ή do-while).
Επίσης για το τερματισμό της switch. (δείτε
την προηγούμενη ενότητα - Εντολές
Ελέγχου) Η εκτέλεση του break μέσα στο βρόγχο μεταφέρει τον έλεγχο του προγράμματος στην εντολή που ακολουθεί τον βρόγχο.
Παράδειγμα:
Θα βρει το άθροισμα μόνο των 1+2+3+4.
Και
την
continue:
Που σταματά την εκτέλεση των εντολών της
επανάληψης και συνεχίζει την επανάληψη αν
συνεχίζει να είναι αληθής η ΣΥΝΘΗΚΗ από την αρχή του
βρόγχου. Δεν διακόπτεται ο βρόγχος αλλά η τρέχουσα επανάληψη.
Θα βρει το άθροισμα μόνο των 1+2+3+4.
Στην προηγούμενη ενότητα |
|
|
|
Κ.Βασιλάκης / ΤΕΙ Κρήτης |
|