ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ



Σχετικά έγγραφα
Οι εντολές ελέγχου της ροής ενός προγράμματος.

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Δομημένος Προγραμματισμός

for for for for( . */

Διαδικασιακός Προγραμματισμός

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

Υπολογισμός - Εντολές Επανάληψης

Εντολές ελέγχου ροής if, for, while, do-while

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Η γλώσσα προγραμματισμού C

Εισαγωγή στον Προγραμματισμό

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Διαδικασιακός Προγραμματισμός

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Δομές ελέγχου ροής προγράμματος

Διάλεξη 5η: Εντολές Επανάληψης

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος lantzos@teiser.gr

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

Η γλώσσα προγραμματισμού C

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Εισαγωγή στην πληροφορική

Η γλώσσα προγραμματισμού C

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Κεφάλαιο : Επαναλήψεις (for, do-while)

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

Εισαγωγή στον Προγραμματισμό με C++

9. Εντολές επανάληψηςκαι η εντολή

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

10. Εντολές επανάληψηςκαι οι εντολές

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραμματισμός

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Δομές Ελέγχου και Επανάληψης

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Ηλεκτρονικοί Υπολογιστές

ΗΥ-150. Προγραμματισμός

Εισαγωγή στην πληροφορική

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Προγραμματισμός Ι (HY120)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στον Προγραμματισμό

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 4 Ο. Δομή επανάληψης Επανάληψη με συνθήκη Ατέρμονη επανάληψη Πίνακας ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ψευδοκώδικας. November 7, 2011

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

8. Συνθήκες ελέγχου, λογικοί τελεστές

Δομές Επανάληψης. Εισαγωγή στη C++

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Γλώσσα Προγραμματισμού C

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στη γλώσσα προγραμματισμού C++

Δομές ελέγχου & επανάληψης

Δομημένος Προγραμματισμός (ΤΛ1006)

οµές Επιλογής Εντολές if και switch

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Οι εντολές ελέγχου της ροής ενός προγράµµατος

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Προγραμματισμός Ι (HY120)

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Ανάπτυξη και Σχεδίαση Λογισμικού

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Βαθμός Σχόλιο. lab3_grades

Υπολογισμός - Εντολές Ελέγχου

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν το σώμα της if. Το νόημα της παραπάνω εντολής είναι ότι οι εντολές στο σώμα της if θα εκτελεστούν μόνο αν η συνθήκη μέσα στις παρενθέσεις είναι αληθής. Μέσα σε μια if μπορούμε να βάλουμε και άλλες if. Η πιο απλή περίπτωση της παραπάνω μορφής είναι όταν έχουμε μόνο μία εντολή. Τότε, δε χρειάζονται άγκιστρα: if ( συνθήκη ) Στην περίπτωση αυτή, συνηθίζεται και πάλι η εντολή να γράφεται στην επόμενη σειρά και προς τα μέσα για να ξεχωρίζει το σώμα από τη συνθήκη (αν και δεν είναι υποχρεωτικό): if ( συνθήκη ) Εφόσον οι παραστάσεις έχουν λογική τιμή, μία παράσταση μπορεί να χρησιμοποιηθεί και ως συνθήκη (αυτό ισχύει και στις εντολές επανάληψης που θα δούμε μετά). Δηλαδή: if (x == 0 ) ισοδυναμεί με if (!x ) και γενικότερα if (παράσταση == 0 ) ισοδυναμεί με if (!παράσταση ) όπως επίσης: if (x ) ισοδυναμεί με if ( x!= 0 ) και γενικότερα if (epxression ) ισοδυναμεί με if ( παράσταση!= 0 ) ΠΡΟΣΟΧΗ. Όπως φαίνεται από τα παραπάνω, μετά από τις παρενθέσεις που περικλείουν τη συνθήκη, ΔΕΝ βάζουμε ελληνικό ερωτηματικό. Αυτό μπαίνει μόνο μετά το τέλος των εντολών που ορίζουν το σώμα της if. Ωστόσο, αν βάζαμε ελλ. ερωτηματικό αμέσως μετά από τις παρενθέσεις, αυτό θα ήταν συντακτικά σωστό, δηλαδή η παρακάτω εντολή if ( συνθήκη ) ; μεταγλωττίζεται και εκτελείται χωρίς πρόβλημα παρ' οτι πιθανότατα δεν είναι αυτό που θέλαμε να κάνουμε. Κι αυτό γιατί με τον τρόπο αυτό είναι σα να γράψαμε μία κενή εντολή με αποτέλεσμα ο υπολογιστής να καταλαβαίνει το εξής: όταν η συνθήκη ισχύει μην κάνεις τίποτε εδώ και συνέχισε με το υπόλοιπο πρόγραμμα. 'Ετσι, αν γράψουμε if ( συνθήκη ); /* και εδώ ελληνικό ερωτηματικό */

είναι διαφορετικό απ' ο,τι αν γράφαμε: if ( συνθήκη ) Στην πρώτη περίπτωση το if τελειώνει με το ερωτηματικό αμέσως μετά από τις παρενθέσεις οπότε η εντολή που ακολουθεί θα εκτελείται πάντα, ανεξαρτήτως της συνθήκης, ενώ στη δεύτερη θα εκτελείται μόνο αν η συνθήκη είναι αληθής (που μάλλον είναι και αυτό που θα θέλαμε να κάνουμε). Αν θέλουμε να εκτελέσουμε συγκεκριμένες ενέργειες τόσο για την περίπτωση κατά την οποία ισχύει μία συνθήκη όσο και για την περίπτωση να μην ισχύει, δηλαδή να έχουμε μία δομή επιλογής με δύο σκέλη, μπορούμε να επεκτείνουμε την if με τη βοήθεια της λέξης else, ως εξής: if ( συνθήκη ) else Τέλος, μπορούμε να κάνουμε δομές if που να χειρίζονται πολλές περιπτώσεις. Π.χ. η παρακάτω if χειρίζεται δύο περιπτώσεις και με την else χειρίζεται κάθε άλλο ενδεχόμενο: if ( συνθήκη_1 ) else if ( συνθήκη_2 ) else Σε όλες αυτές τις περιπτώσεις μπορεί στο σώμα κάθε σκέλους να υπάρχει μόνο μία εντολή, π.χ. if ( συνθήκη ) else

Εντολή switch Η παρακάτω εντολή switch ( παράσταση ) /* ΠΡΟΣΟΧΗ! Οχι συνθήκη! */ case consta :. break; case constb : break; default : break; ισοδυναμεί με if ( παράσταση == consta ). else if ( παράσταση == constb ).. else Παρατηρούμε τη χρήση της εντολής break; η οποία εξασφαλίζει ότι μετά από κάθε επιλογή ο έλεγχος μεταβιβάζεται στην πρώτη εντολή αμέσως μετά από το τέλος της switch. Η εντολή αυτή υπάρχει αυτοτελώς και χρησιμοποιείται και σε δομές επανάληψης για να τερματίζει τον εσωτερικό βρόχο. - βλ. επόμενη ενότητα. Τελεστής υπό συνθήκη (συνθήκηal operator): Αυτός είναι ο μόνος τελεστής που συνδυάζει τρεις τελεστέους για να δώσει ένα αποτέλεσμα και η γενική μορφή είναι η εξής: συνθήκη? παράσταση_για_αληθή : παράσταση_για_ψευδή ; Ωραίο παράδειγμα: το πρόγραμμα if(x>0) printf( 1\n ); else if(x<0) printf( -1\n ); else printf( 0\n ); μπορεί να γραφεί και ως: printf( %d\n,(x>0)? 1 : ((x<0)? -1 : 0));

Εντολή goto: Σύνταξη: go to label; Παράδειγμα: int x; start: printf( \n%d, x); if ( x < 5 ) x++; goto start; Αυτή είναι καλή για παράκαμψη μεγάλων κομματιών του κώδικα στη φάση της ανάπτυξης κυρίως, καθώς και για έξοδο από δομές επανάληψης (βλ. μετά) όταν η break δε μπορεί να βοηθήσει με απλό τρόπο επειδή μας βγάζει μόνο από τον εσωτερικό βρόχο, αλλά καλύτερα να αποφεύγεται όσο είναι δυνατό. Ο δομημένος προγραμματισμός με την πιο αυστηρή έννοια του όρου αποκλείει την εντολή αυτή επειδή δεν υπάρχει κάτι που μπορεί να γίνει με τη goto και να μη μπορεί να γίνει με δομημένες εντολές επιλογής ή επανάληψης. Εντολές επανάληψης. Οι εντολές επανάληψης, που αναφέρονται και ως βρόχοι επανάληψης (loops) είναι τριών ειδών: Υπό συνθήκη με έλεγχο στην αρχή (while) Υπό συνθήκη με έλεγχο στο τέλος (dowhile) Για ορισμένο αριθμό φορών (for) Εντολή while Η γενική μορφή της είναι η εξής: while ( συνθήκη ). Παρατηρήσεις: Αν αρχικά η συνθήκη δεν ισχύει, τότε μπορεί να μην εκτελεστεί ούτε μία φορά. Συνεπώς προσοχή κατά πόσον είναι αυτό που θελουμε. Αν δε θέλουμε κάτι τέτοιο, πρέπει να εξασφαλίσουμε ότι η συνθήκη ή παράσταση ελέγχου έχει αληθή τιμή πριν ξεκινήσει ο βρόχος (loop). Διαφορετικά μπορούμε να χρησιμοποιήσουμε και do while( ) - βλ. παρακάτω. Προσοχή επίσης στην αέναη επανάληψη (endless loop)! Π.χ., τι κάνει το παρακάτω loop ανάλογα με το σύμβολο της ανισότητας στην συνθήκη ελέγχου; x = 1; x = 1; while( x <= 0) while( x > 0) x++; x++; Αυτό δε θα εκτελεστεί ποτέ! Αυτό δε θα τελειώσει ποτέ! (εκτός αν έχει break, goto ή return)

Για να εκτελεστεί η while πεπερασμένο αριθμό φορών θα πρέπει μέσα στο σώμα της (ανάμεσα στα άγκιστρα δηλαδή) να υπάρχει κάποια μεταβαλλόμενη ποσότητα που θα καταστήσει τη συνθήκη ψευδή. Παράδειγμα: υπολογισμός αθροίσματος και γινομένου ακέραιων αριθμών από 1 έως 10. n = 1; prod = 1; while (n < 11) prod *= n++; Μέσα στη while, το sum αυξάνεται κατά n, το prod πολλαπλασιάζεται επί n και μετά το n αυξάνεται κατά 1 (υπενθυμίζουμε ότι το prod *= n++; μπορεί να γραφεί και ως prod = prod * n; n = n + 1;). Έτσι, όταν το n γίνει 10 θα μεταβάλλει άλλη μία φορά τα sum και prod και μετά θα πάρει την τιμή 11 οπότε θα πάψει να ισχύει η συνθήκη n < 11 και η while δε θα εκτελεστεί άλλη φορά. Μπορούμε να γράψουμε και εντολές while με μόνο μία απλή εντολή. Τότε, δε χρειάζονται άγκιστρα: while(συνθήκη) Συνήθως, όπως και με την if, σε αυτή την περίπτωση γράφουμε την εντολή από κάτω, ως εξής: while(συνθήκη) Έτσι, στο προηγούμενο παράδειγμα, ο υπολογισμός του αθροίσματος μπορεί να γραφτεί χωριστά από αυτόν του γινομένου (αν και σε αυτό το συγκεκριμένο παράδειγμα δεν υπάρχει λόγος που να επιβάλλει κάτι τέτοιο): while (n < 11) sum += n++; while (n < 11) prod *= n++; (Να προσεχτεί ότι βάλαμε τον τελεστή ++ και στις δύο περιπτώσεις για να εξασφαλίσουμε τον τερματισμό της κάθε while!). Όπως και με την if, το ελληνικό ερωτηματικό αμέσως μετά από τις παρενθέσεις σημαίνει την εκτέλεση της κενής εντολής που ίσως δεν είναι αυτό που θέλουμε! Έτσι, αν γράψουμε: n = 1; while (n < 11) ; /* και εδώ ελληνικό ερωτηματικό */ sum += n++; το μόνο που θα καταφέρουμε θα είναι να κρεμάσει το πρόγραμμα λόγω του ατέρμονου βρόχου while (n < 11) ; αφού το n θα είναι < 11 και δε μεταβάλλεται από το while. Τέλος, αξίζει να σημειώσουμε ότι μέσα σε μία while μπορούμε να τοποθετήσουμε άλλες εντολές while ή ακόμη και άλλου τύπου επαναλήψεις ή εντολές επιλογής. Για να διακόψουμε μία while μπορούμε να συνδυάσουμε μία συνθήκη με την εντολή break, αλλά αν έχουμε δύο (ή περισσότερα while) το ένα μέσα στο άλλο και τη break στο πιο εσωτερικό, ο έλεγχος δε βγαίνει τελείως από τις while αλλά πάει στο αμέσως πιο εξωτερικό while. Για να βγούμε τελείως από όλα τα ένθετα while χρειάζεται μία εντολή goto. Η εντολή continue μπορεί να χρησιμοποιηθεί για να διακόψουμε την τρέχουσα επανάληψη σε κάποιο σημείο πριν τελειώσει (πριν εκτελεστούν όλες οι εντολές στο σώμα της while και να περάσουμε αμέσως στην επόμενη επανάληψη).

Εντολή do while Η γενική μορφή της είναι do while( συνθήκη ) ; όπου πρέπει να προσέξουμε ότι στο τέλος, μετά από τη συνθήκη, μπαίνει ελληνικό ερωτηματικό. Ως προς αυτό το σημείο διαφέρει από όλες τις άλλες εντολές επιλογής και επανάληψης. Αυτή η εντολή εκτελείται πάντα τουλάχιστον μία φορά αντίθετα από την while. Η do while προσφέρεται για περιπτώσεις όπου ζητείται είσοδος από το χρήστη και θέλουμε να επαναλαμβάνεται ένα ερώτημα μέχρι να εισαχθεί η σωστή απάντηση. Παράδειγμα: μενού επιλογών χρήστη. int choice; do printf( \n 1. Εισαγωγή στοιχείων ); printf( \n 2. Εκτύπωση στοιχείων ); printf( \n 3. Διόρθωση στοιχείων ); printf( \n 4. Διαγραφή στοιχείων ); printf( \n 5. Έξοδος ); printf( \nεπιλέξτε ) scanf( %d, &choice); while (choice!= 5); Εδώ, ο χρήστης πρέπει να δώσει μία από τις τιμές 1 έως 5 που αντιστοιχούν σε κάποιες λειτουργίες του προγράμματος. Η εκτύπωση των επιλογών που προσφέρονται θα επαναληφθεί αν ο χρήστης δώσει άλλες τιμές και μέχρι να δώσει κάποια από 1 έως 5. Εντολή for Η εντολή for μας επιτρέπει να καθορίσουμε ακριβώς και εκ των προτέρων πόσες φορές θέλουμε να γίνει μία επανάληψη. Μια από τις πιο συνηθισμένες μορφές της εντολής for είναι και η παρακάτω: for (i = αρχική τιμή ; i < οριακή τιμή ; ++i). Για παράδειγμα, ας υπολογίσουμε και πάλι το άθροισμα και το γινόμενο των ακέραιων αριθμών από 1 έως 10. prod = 1; for (n = 1; n < 11; n++)

prod *= n; Άλλος τρόπος θα ήταν να γράψουμε: for (n = 10; n > 0; n--) prod *= n; Γενικά, μπορούμε να κάνουμε διάφορους συνδυασμούς αυτού του είδους για να πετύχουμε το ίδιο αποτέλεσμα. Η γενική μορφή της for είναι for(αρχική Συνθήκη ; Συνθήκη Ελέγχου; Παράσταση Μεταβολής). Όπως και με την if και τη while, μπορούμε να γράψουμε και for με μόνο μία απλή εντολή, την οποία συνήθως γράφουμε από κάτω: for(αρχική Συνθήκη ; Συνθήκη Ελέγχου; Παράσταση Μεταβολής) Έτσι, στο προηγούμενο παράδειγμα, ο υπολογισμός του αθροίσματος μπορεί να γραφτεί χωριστά από αυτόν του γινομένου (αν και σε αυτό το συγκεκριμένο παράδειγμα δεν υπάρχει λόγος που να επιβάλλει κάτι τέτοιο): for (n = 10; n > 0; n--) for (n = 10; n > 0; n--) prod *= n; Όπως και με τις if και while, το ελληνικό ερωτηματικό αμέσως μετά από τις παρενθέσεις σημαίνει την εκτέλεση της κενής εντολής που ίσως δεν είναι αυτό που θέλουμε! Έτσι, αν γράψουμε: for (n = 10; n > 0; n--) ; /* και εδώ ελληνικό ερωτηματικό */ το μόνο που θα καταφέρουμε θα είναι να μειωθεί το n από το 10 στο 1 και μετά να προστεθεί στο sum που έτσι, θα γίνει 1. Πάντως, μερικοί προγραμματιστές εκμεταλλεύονται αυτή τη δυνατότητα για να πετύχουν ένα πιο συνοπτικό στυλ γραφής. Π.χ. το άθροισμα από το 1 έως το 10 μπορεί να υπολογιστεί και έτσι: for (n = 10; n > 0; sum += n--) ; Τέλος, αξίζει να σημειώσουμε ότι μέσα σε μία for μπορούμε να τοποθετήσουμε άλλες εντολές for ή ακόμη και άλλου τύπου επαναλήψεις ή εντολές επιλογής. Για να διακόψουμε μία for μπορούμε να συνδυάσουμε μία συνθήκη με την εντολή break, αλλά αν έχουμε δύο (ή περισσότερα for) το ένα μέσα στο άλλο και τη break στο πιο εσωτερικό, ο έλεγχος δε βγαίνει τελείως από τις for αλλά πάει στο αμέσως πιο εξωτερικό for. Για να βγούμε τελείως από όλα τα ένθετα for χρειάζεται μία εντολή goto. Εντολή continue Σύνταξη: continue; Η εντολή continue μπορεί να χρησιμοποιηθεί για να διακόψουμε την τρέχουσα επανάληψη σε κάποιο σημείο πριν τελειώσει (πριν εκτελεστούν όλες οι εντολές σε μια for ή while) και να περάσουμε αμέσως στην επόμενη επανάληψη. Συνήθως συνδυάζεται με κάποια συνθήκη.