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

Σχετικά έγγραφα
ΗΥ-150. Προγραμματισμός

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

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

Προγραμματισμό για ΗΜΥ

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

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

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

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

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

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

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

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

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Εντολές επιλογής Επαναλήψεις (if, switch, while)

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

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

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

Παίρνοντας Αποφάσεις 1

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι χρειάζεται η εντολή if ; Εντολή if. Παράδειγμα #1. Παράδειγμα #1

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

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

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

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

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

Εργαστήριο 5. Εντολή if και παραλλαγές: if-else, πολλαπλές if, πολλαπλές if-else. Απλές και σύνθετες εντολές. Εντολή switch.

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

Οντοκεντρικός Προγραμματισμός

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

ΔΟΜΗ ΕΠΙΛΟΓΗΣ. Οι διάφορες εκδοχές της

Στοιχειώδης προγραμματισμός σε C++

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

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

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Προγραμματισμός I (Θ)

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

5 &6. Τύποι δεδομένων, τελεστές και

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 4

Transcript:

ΗΥ-150 Εντολές Ελέγχου Ροής

Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει έκφραση ελέγχου σε μορφή λογικής πρότασης. Ανάλογα με το εάν η πρόταση είναι αληθής ή ψευδής εκτελείται ένα, αντίστοιχο, σύνολο εντολών. Εντολές επανάληψης ( for, while, do/while) 2

if εντολή διακλάδωσης Συντάσσεται ως εξής: if (condition)... // block A else... // block B Εάν η συνθήκη (condition) είναι αληθής, εκτελείται το block των εντολών που περικλείεται μεταξύ των πρώτων (block A). Αλλιώς, εκτελείται το block των εντολών μετά το else (block B). 3

if Το κάθε block μπορεί να αποτελείται από καμμία, μία, ή περισσότερες εντολές. Στην περίπτωση που περιλαμβάνει μία μόνο εντολή μπορούν να παραληφθούν τα άγκιστρα () που την περικλείουν. if (val > max) max = val; else max = 1000.0; i=i+1; 4

if Στην περίπτωση που το else block είναι κενό μπορεί να παραληφθεί ολόκληρο: if (condition)... Εάν το αποτέλεσμα της έκφρασης (συνθήκης) είναι αληθής τότε εκτελούνται οι εξαρτώμενες εντολές αλλιώς η εκτέλεση συνεχίζει μετά το if block (αγνοούνται οι εξαρτώμενες εντολές) 5

if διάβασε τους ακέραιους α, β αν (α < β) τότε τύπωσε α αλλιώς τύπωσε β 6

Παράδειγμα int main() int a, b; cout<< dwse to a\n ; cin>>a; cout<< dwse to b\n ; cin>>b; if (a < b) cout<<a; else cout<<b; 7

if αν (συνθήκη) τότε εντολές Α αλλιώς εντολές Β συνθήκη : λογική παράσταση που αποτιμάται σε true-αλήθεια (1) ή false-λάθος (0) 8

if Kάθε block μπορεί να περιλαμβάνει οποιεσδήποτε άλλες εντολές και βέβαια άλλο if. H if (condition)... else... είναι μία εντολή. Στην περίπτωση ενός εσωκλειόμενου if, θέλει ιδιαίτερη προσοχή το επόμενο else του κώδικα. Το κάθε else ταιριάζει με το αμέσως προηγoύμενό του if στο ίδιο block. Η εντολή max = 10; εκτελείται όταν to i είναι 0 και δεν ισχύει το ( val > max ) και όχι όταν δεν ισχύει το ( i == 0 ). Η χρήση των αγκίστρων επιβάλει την πρόθεση του προγραμματιστή: if (i == 0) if (val > max) max = val; else max = 10; if (i == 0) if (val > max) max = val; else max = 10; 9

Εντολές υπό Συνθήκη - if εντολή <- έκφραση; εντολή <- σειρά εντολών if (έκφραση) εντολή1 if (έκφραση) εντολή1 else εντολή2 if (έκφραση1) εντολή1 else if (έκφραση2) εντολή2 else εντολή3 //Αν η έκφραση έχει τιμή διάφορη του 0 (!0), //εκτελείται η εντολή 1 //Αν η έκφραση έχει τιμή διάφορη του 0 (!0), //εκτελείται η εντολή 1 αλλιώς η εντολή2 //Αν η έκφραση1 έχει τιμή διάφορη του 0 (!0), //εκτελείται η εντολή 1 //αλλιώς αν η έκφραση2 έχει τιμή διάφορη του 0 //εκτελείται η εντολή 2 //αλλιώς εκτελείται η εντολή 3 10

Λογικές παραστάσεις Μια λογική παράσταση είναι ανάλογη μιας μαθηματικής παράστασης, με τη διαφορά ότι το αποτέλεσμα μπορεί να είναι μόνο αλήθεια/true (1) ή λάθος/false (0) Λογικές παραστάσεις συνθέτονται χρησιμοποιώντας σχεσιακούς τελεστές Δυο λογικές παραστάσεις μπορούν να συνδυαστούν με ένα λογικό τελεστή 11

Αληθής / Ψευδής λογική πρόταση στη C++ Η C++ ο τύπος bool χρησιμοποιείται για την αναπαράσταση του αποτέλεσματος μιας λογικής έκφρασης, π.χ. σε συνθήκη bool b = x>0; cout << b; if (b) cout << is TRUE << endl; else cout << is FALSE << endl; 12

Σχεσιακοί Τελεστές Δυαδικοί Τελεστές < μικρότερο από > μεγαλύτερο από <= μικρότερο ή ίσο με >= μεγαλύτερο ή ίσο με == ίσο με!= διάφορο του Αποτιμούνται σε 0 (ψευδής) ή 1 (αληθής) Τύποι τελεσταίων int, char, float, double 13

Παραδείγματα (x < y) t = (x < y); Αν (t) τότε cout << true << endl); k = (i >= 8); a = (b!= c); (f == 2.3456) ΠΡΟΣΟΧΗ αποφεύγουμε να συγκρίνουμε δυο float ή double με ισότητα Εναλλακτικά: ((f1-f2) <.00001) ( a >= d ) a < b <..< z A < B <..< Z 0 < 1 <..< 9 Θυμηθείτε πως οι χαρακτήρες είναι αριθμοί και ερμηνεύονται σύμφωνα με τον πίνακα ASCII. Στον πίνακα αυτό, οι χαρακτήρες είναι οργανωμένοι με αλφαβητική σειρά. 14

Λογικοί Τελεστές Συνδυάζουν δύο λογικές παραστάσεις σε μια σύνθετη λογική παράσταση && σύζευξη, δυαδικός τελεστής (AND) διάζευξη, δυαδικός τελεστής (OR)! άρνηση, μοναδιαίος τελεστής (NOT) Αποτιμούνται σε 0 ή 1 0 (δεν ισχύει, ψευδής ή false) 1 (ισχύει, αληθής ή true) 15

Εκφράσεις με Λογικούς και Σχεσιακούς Τελεστές (A>=0 && A<=100) (s<10 s>100)!(s<10 s>100) (s>=10 && s<=100) (i<10 && j*2==1) 16

Προτεραιότητες Τελεστών ()! & * / % + - < <= >= > ==!= && = υψηλότερη χαμηλότερη 17

Αποτίμηση Λογικών Εκφράσεων Η αποτίμηση αρχίζει από τα αριστερά και προχωρεί μέχρι το σημείο που χρειάζεται να προχωρήσει (lazy evaluation), π.χ. 0 && Ε αποτιμάται σε 0 η αποτίμηση της έκφρασης Ε δεν χρειάζεται 1 Ε αποτιμάται σε 1 η αποτίμηση της έκφρασης Ε δεν χρειάζεται 18

Αποτίμηση Λογικών Εκφράσεων Για λόγους αποδοτικότητας Αποφυγή λαθών ( (y / x) > 2 && (x!= 0) ) Εάν x ισούται με 0, run time error (λάθος διότι απαγορεύεται η διαίρεση με το 0). Όμως η ακόλουθη διατύπωση δεν έχει πρόβλημα (υπερβαίνει το πρόβλημα της διαίρεσης με 0) ( x!= 0 && (y / x) > 2 ) if ( x!= 0) if ((y / x) > 2 ) 19

Σειρά Συνθηκών σε μία Λογική Έκφραση Γενικά σε μία σύζευξη, Ε1 && Ε2, η συνθήκη Ε1 πρέπει να αποτελεί τον αριστερό τελεστέο, εάν στην περίπτωση που αποτιμείται σε 0, τυχόν αποτίμηση της Ε2 θα οδηγήσει σε πρόβλημα. Με αυτή την σειρά αποτρέπεται η αποτίμηση της Ε2. Ανάλογο για διάζευξη Ε1 Ε2 ( (x == 0) (y / x) > 2 ) 20

Εκφράσεις στη C++ x και y μεγαλύτερα του z (x>z && y>z) x είναι ίσο με το 2 ή με το 10 (x==2 x==10) a είναι στο πεδίο από b μέχρι και c (a>=b && a<=c) α είναι έξω από το πεδίο b μέχρι και c!(a>=b && a<=c) ή (a<b a>c) x είναι μικρότερο του 0 ή μεταξύ 10 και 1000 (x<0) (x>=10 && x<=1000) z είναι αγγλικός χαρακτήρας (z>= a && z<= z ) (z>= A && z<= Z ) 21

Παράδειγμα Γράψετε κώδικα που παίρνει παραμέτρους δυο ακέραιους αριθμούς και τυπώνει τον μικρότερο. 22

Παράδειγμα int main() int a, b; cout<< dwse to a\n ); cin>>a; cout<< dwse to b\n ); cin>>b; if (a < b) cout<<a; else cout<<b; return 0; 23

Παράδειγμα int main() int a, b, minimum; cout<<dwse ta a kai to b\n ); cin>>a>>b; if (a < b) minimum = a; else minimum = b; cout<<minimum; return 0; 24

Παράδειγμα int main() int a, b, minimum; cout<< dwse ta a kai to b\n ; cin>>a>>b; minimum = b; if (a < b) minimum = a; cout<<minimum; return 0; 25

Παράδειγμα Γράψετε κώδικα που τρεις ακέραιους αριθμούς και επιστρέφει τον μικρότερο. 26

Παράδειγμα int minimum; if (a < b) minimum = a; else minimum = b; if (c < minimum) minimum = c; else cout<< The minimum is <<minimum; 27

Παράδειγμα int minimum; if (a < b) if (a < c) minimum = a; else minimum = c; else if (b < c) minimum = b; else minimum = c; cout<< The minimum is << minimum << endl; 28

Nested if-else Γράψετε κώδικα που ελέγχει ένα ακέραιο αριθμό και τυπώνει 1 εαν είναι θετικός, 0 εαν είναι 0 και -1 εαν είναι αρνητικός 29

Nested if-else int number, code; cin >> number; if (number > 0) else code = 1; if (number < 0) code = -1; else // number = 0 code = 0; cout << code is: <<code; 30

Nested if-else int number, code; cin >> number; if (number > 0) code = 1; else if (number < 0) code = -1; else // number = 0 code = 0; cout << code is: <<code; 31

Nested if-else int number, code; cin >> number; if (number > 0) code = 1; else if (number < 0) code = -1; else // number = 0 code = 0; cout << code is: <<code; 32

Χρήση λογικών τελεστών Γράψετε κώδικα που παίρνει τρεις αριθμούς και επιστρέφει τον μικρότερο. int minimum; if ( (a < b) && (a < c) ) minimum = a; else if ( (b < a) && (b < c) ) else minimum = b; minimum = c; cout << The minimum is <<minimum; 33

if για έλεγχο Εντολές ελέγχου για να έλεγχο της ορθότητας δεδομένων π.χ. if(size<=0) cout << Error: size is not positive <<endl; exit(-1); /*termatizei το programma*/ 34

if για έλεγχο printf( Enter length in meters: ); cin >> length, if (length<0) cout << Error: Length is not positive!\n ); exit(-1); 35

Παράδειγμα int main() char p; float x,y,res; cin >> x; cin >> p; cin >> y; if (p == + ) res = x+y; else if (p == - ) res = x-y; else if (p == * ) res = x*y; else if (p == / ); res = x/y; else cout<< La8os\n ; return -1; cout<< x<< p <<y << = <<res; return 0; 36

Παράδειγμα με ακεραίους switch example if-else switch (x) case 1: cout << "x is 1"; break; case 2: cout << "x is 2"; break; default: cout << "value of x unknown"; if (x == 1) cout << "x is 1"; else if (x == 2) cout << "x is 2"; else cout << "value of x unknown"; 37

Εντολές υπό Συνθήκη - switch switch (έκφραση) case σταθερή_παράσταση_1 : statements; break; case σταθερή_παράσταση_2 : statements; break; default : statements; Το default είναι προαιρετικό και εκτελείται αν καμία παράσταση δεν βρεθεί ίση με την έκφραση Αν ένα break λείπει τότε συνεχίζεται η εκτέλεση των εντολών 38

switch 39

Εντολές υπό Συνθήκη - switch Η τιμή ελέγχου i πρέπει να είναι ακέραιου τύπου (char, int, short int, long int) με τις signed και unsigned παραλλαγές τους. Η τιμή μπορεί να προέρχεται από μεταβλητή ή να είναι η τιμή συνάρτησης που επιστρέφει τέτοιο τύπο ή κάποια μεταβλητή. Οι τιμές value1, value2,..., valuen είναι σταθερές ακέραιου τύπου και διακριτές μεταξύ τους. Κατά την εκτέλεση, η τιμή ελέγχου i συγκρίνεται με κάθε μία από τις value1, value2,...,valuen. Αν η τιμή της περιλαμβάνεται σε αυτές, τότε εκτελούνται οι εντολές που ακολουθούν το αντίστοιχο case. Η εκτέλεση συνεχίζει με τις εντολές των επόμενων case ή/και του default αν έπεται, έως ότου διακοπεί με break (ή τυχόν π.χ. goto, return). Μετά το break η εκτέλεση συνεχίζει με την πρώτη εντολή μετά το καταληκτικό άγκιστρο της δομής switch. Αν δεν βρεθεί η τιμή της στις value1, value2,...,valuen εκτελείται το block των εντολών του default, αν υπάρχει. Αλλιώς, η εκτέλεση συνεχίζει μετά το του switch. Οι σχετικές θέσεις των case και του default μπορούν να είναι οποιεσδήποτε. 40

Παράδειγμα με switch int main() char p; float x, y, res; cin >> x; cin >> p; cin >> y; switch (p) case + : case - : case * : case / : res = x+y; break; res = x-y; break; res = x*y; break; res = x/y; break; default : cout<< La8os eisodos\n ; 41

Το πιο σύνηθες λάθος if ( a = b) έναντι if (a == b) και τα 2 είναι αποδεκτά από το μεταφραστή, το πρώτο όμως αποτιμάται πάντα ως b. 42

Τυπικά Λάθη if(x=5) αντί για if(x==5) Ξεχάσατε το break σε εντολή switch Ξεχάσατε, Λάθος στις προτεραιότητες: ( ) Λύση: Μορφοποίηση και χρήση σχολίων 43

Παραστάσεις υπό Συνθήκη -? Ο τελεστής (?: ) είναι ένας ιδιαίτερα διαδεδομένος ιδιωματισμός της C++. Η εντολή if (condition) val = value1; else val = value2; ισοδυναμεί με val = (condition? value1 : value2); Γενικότερα, η έκφραση (condition? έκφρασηα : έκφρασηβ) έχει την τιμή έκφρασηα όταν η συνθήκη condition είναι αληθής, ενώ έχει την τιμή έκφρασηβ όταν η συνθήκη είναι ψευδής. 44

Παραστάσεις υπό Συνθήκη -? Οι παρενθέσεις που περιβάλουν τον τελεστή (?: ) με τα ορίσματά του στο συγκεκριμένο παράδειγμα δεν είναι απαραίτητες, βοηθούν όμως στην κατανόηση του κώδικα. Καθώς για το συγκεκριμένο τελεστή δεν μπορεί να καθοριστεί μονοσήμαντα η προτεραιότητά του σε σχέση με τον ( = ) πρέπει να τις χρησιμοποιούμε για να εκτελείται η επιδιωκόμενη πράξη. Εναλλακτικά, μπορούμε να εφαρμόζουμε τον εξής κανόνα: Οι τελεστές (?: ) και ( = ) έχουν ίδια προτεραιότητα, δεχόμενοι ότι οι πράξεις εκτελούνται από τα δεξιά προς τα αριστερά. Επομένως, η έκφραση a = b? c : d ισοδυναμεί με a = (b? c : d), ενώ η έκφραση a? b : c = d εκτελείται ως a? b : (c = d) 45

Παραστάσεις υπό Συνθήκη -? if ( x > y) x = a; else x = b; x = (x>y)? a : b; 46