ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις ΕΡΓΑΣΤΗΡΙΟ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ
Δομές Ελέγχου Η ροή του προγράμματος “διακόπτεται” για να παρθεί μια απόφαση, να γίνει κάποια επιλογή Το αποτέλεσμα της απόφασης καθορίζει την “κατεύθυνση” της ροής του προγράμματος
Γενική Σύνταξη Δομών Ελέγχου αν (συνθήκη) τότε εντολές Α αλλιώς εντολές Β συνθήκη : λογική παράσταση που αποτιμάται σε true-αληθές ή false-ψευδές
Λογικές παραστάσεις Μια λογική παράσταση (ΛΠ) είναι ανάλογη μιας μαθηματικής παράστασης, με τη διαφορά ότι το αποτέλεσμα μπορεί να είναι μόνο αλήθεια (true) ή ψευδές (false) Λογικές παραστάσεις συνθέτονται χρησιμοποιώντας σχεσιακούς τελεστές Δυο λογικές παραστάσεις μπορούν να συνδυαστούν με ένα λογικό τελεστή
Σχεσιακοί Τελεστές (Relational Operators) • Σχεσιακοί Τελεστές < μικρότερο από > μεγαλύτερο από <= μικρότερο ή ίσο με >= μεγαλύτερο ή ίσο με == ίσο με != διάφορο του Αποτιμούνται σε False (ψευδής) ή True (αληθής) Τύποι τελεσταίων int, short, long, char, float, double
Παραδείγματα (x < y) t = (x < y); k = (i >= 8); a = (b != c); (f == 2.3456f) (‘a’ >= ‘d’)
Λογικοί Τελεστές (Logical Operators) Συνδυάζουν δύο λογικές παραστάσεις σε μια σύνθετη λογική παράσταση && σύζευξη, δυαδικός τελεστής (AND) || διάζευξη, δυαδικός τελεστής (OR) ! άρνηση, μοναδιαίος τελεστής (NOT) Αποτιμούνται σε false ή true false(δεν ισχύει, ψευδής ή false) true (ισχύει, αληθής ή true)
ΠΙΝΑΚΑΣ ΑΛΗΘΕΙΑΣ ΛΟΓΙΚΩΝ ΤΕΛΕΣΤΩΝ Τελεστέος Α Τελεστέος Β AND (&&) || (OR) !A (NOT) false true
Eντολή if-else else if Χωρίς Αγκιστρα Με άγκιστρα if (συνθήκη){ Εντολές }[else if (συνθήκη2){ }] }[else Άγκιστρα ομαδοποιούν εντολές σαν να είναι μια εντολή if (συνθήκη1) Εντολή [else if(συνθήκη2) Εντολή] [else
Η πρόταση switch switch (μεταβλητή) { case σταθερά1: Εντολές break; [case σταθερά2: break;] [default: Εντολές] }
ΑΣΚΗΣΗ 1 Να γραφεί πρόγραμμα σε java με όνομα Calculator το οποίο να δέχεται ως είσοδο δύο δεκαδικούς αριθμούς a,b και έναν χαρακτήρα που καθορίζει την αριθμητική πράξη που θα εφαρμοστεί στους δύο αριθμούς. Οι επιτρεπτές τιμές για τον χαρακτήρα είναι ‘+’,’-’,’x’,’:’. Ανάλογα με την είσοδο του χρήστη να υπολογίζεται και να τυπώνεται το κατάλληλο αποτέλεσμα: Παράδειγμα: Για είσοδο 4.5 + 8.0 να τυπώνεται 4.5+8=12.5 Για είσοδο 2 x 8 να τυπώνεται 2x8=16 Να εφαρμοστεί Αμυντικός Προγραμματισμός
ΑΣΚΗΣΗ 2 Να γραφεί πρόγραμμα σε java με όνομα CalculatorWithSwitch το οποίο να δέχεται ως είσοδο δύο δεκαδικούς αριθμούς a,b και έναν χαρακτήρα που καθορίζει την αριθμητική πράξη που θα εφαρμοστεί στους δύο αριθμούς. Οι επιτρεπτές τιμές για τον χαρακτήρα είναι ‘+’,’-’,’X’,’:’. Ανάλογα με την είσοδο του χρήστη να υπολογίζεται και να τυπώνεται το κατάλληλο αποτέλεσμα: Παράδειγμα: Για είσοδο 4 .5‘+’ 8.0 να τυπώνεται 4.5+8=12.5 Για είσοδο 2‘X’8 να τυπώνεται 2Χ8=16 Να χρησιμοποιηθεί δομή switch-case. Να εφαρμοστεί Αμυντικός Προγραμματισμός
ΑΣΚΗΣΗ 3 Να γραφεί πρόγραμμα σε java με όνομα FindDate στο οποίο ο χρήστης να εισάγει την τρέχουσα ημερομηνία ως τρεις ακεραίους αριθμούς που αντιστοιχούν στην ημέρα, μήνα και το έτος. Στην συνέχεια κατά τον ίδιο τρόπο να εισάγει μια τυχαία ημερομηνία. Κάνοντας τους απαραίτητους ελέγχους να τυπωθεί εάν η δοθείσα ημερομηνία ανήκει στο παρόν, παρελθόν ή μέλλον.