ΕΙΣΑΓΩΓΗ
Στο σημερινό δωρεάν μάθημα Java θα μελετήσουμε τον τρόπο με τον οποίο τα προγράμματα μας μπορούν να παίρνουν αποφάσεις με βάση κάποια συνθήκη ή συνθήκες
που έχουμε ορίσει. Επίσης θα
αναλύσουμε την έννοια του block και πως αυτό συνδυάζεται με το local scope.
BLOCK STATEMENT
Στη Java, σαν statement ορίζουμε οποιαδήποτε
πράξη που έχει ένα ολοκληρωμένο αποτέλεσμα όπως ο ορισμός μια μεταβλητής, η ανάθεση
τιμής σε μια μεταβλητή, η τύπωση ενός αποτελέσματος στο terminal κτλ. Επίσης, κάθε statement, όπως ήδη γνωρίζετε, πρέπει να
τελειώνει με semicolon ( ; ).
Ένα block είναι μια ομάδα από statements που η αρχή και το τέλος της ορίζεται
από braces ( { } ). Οι μεταβλητές που θα οριστούν μέσα στο block μπορούν να χρησιμοποιηθούν μόνο από
κώδικα μέσα από το ίδιο block. Με άλλα λόγια, το εύρος δράσης της μεταβλητής
(δηλαδή ποιος κώδικας έχει πρόσβαση σε αυτή) είναι μόνο μέσα από το ίδιο block. Αυτό ονομάζεται local scope.
Ας δούμε ένα
απλό παράδειγμα μέσα από το οποίο θα μπορέσετε να κατανοήσετε απόλυτα την
έννοια του local scope. Για καλύτερη επεξήγηση του κώδικα έχουν προστεθεί σχόλια σε
κάθε γραμμή του προγράμματος. Το παρακάτω πρόγραμμα δεν μπορεί να εκτελεστεί.
App.java
Output
Στο παραπάνω
παράδειγμα, η κύρια ουσία είναι να καταλάβετε ότι στη μεταβλητή num1 που ορίστηκε σε επίπεδο μεθόδου
έχουν πρόσβαση τα υπό-blocks που δημιουργήσαμε. Το αντίθετο όμως δεν ισχύει. Δηλαδή στη num2 που ορίστηκε μέσα στο δικό της block δεν έχει πρόσβαση ο κώδικας που
βρίσκεται σε επίπεδο main μεθόδου.
IF STATEMENT
Η
χρησιμότητα , και κατά συνέπεια, η έννοια του block γίνεται πιο ξεκάθαρη όταν
χρησιμοποιείται σε συνδυασμό με άλλες λογικές όπως αυτή των if statements. Το if statement προσθέτει τη δυνατότητα στον
πρόγραμμα μας να αποφασίζει για τη ροή εκτέλεσης του κώδικα βασιζόμενο στο
αποτέλεσμα μιας (ή και περισσοτέρων) true/false συνθήκης.
Το if statement αποτελείται από ένα Boolean expression και αμέσως μετά ακολουθούν ένα ή και
περισσότερα statements. Ο γενικός κανόνας συντακτικού ενός if statement είναι ο ακόλουθος:
Εάν το Boolean expression μέσα στη παρένθεση έχει τιμή true, τότε τα statements που βρίσκονται μέσα στο block ( ορίζεται από τα braces ( { } ) ) θα εκτελεστούν. Εάν όμως το
boolean
expression είναι false, τότε δεν θα εκτελεστούν τα statements που ανήκουν στο block του if, το πρόγραμμα θα τα παραβλέψει και
θα συνεχίσει την εκτέλεση του υπόλοιπου κώδικα της εφαρμογής.
Στο παρακάτω
παράδειγμα θα χρησιμοποιήσουμε το if statement για να συγχαρούμε τον μαθητή εάν ο
μέσος όρος των τριών διαγωνισμάτων είναι μεγαλύτερος από 95. Εάν δεν είναι τότε
δεν θα εμφανιστεί ο έξτρα μήνυμα που ορίζεται μέσα στο if block.
App.java
Output
The average score is 96
Congratulations!
Excellent effort on your exams
Με βάση το
παραπάνω παράδειγμα και με τη θεωρία που έχουμε καλύψει μέχρι τώρα,
καταλαβαίνετε ότι όταν έχουμε πολλαπλά if statements μέσα στο ίδιο πρόγραμμα, τότε θα
εκτελεστούν όλα εκείνα στα οποία το Boolean expression είναι true. Ας δούμε ένα παράδειγμα στην οποίο
έχουμε μια τέτοια περίπτωση.
App.java
Output
10/2 = 5.0
y = 50 and grade = F
Παρατηρούμε
στο παραπάνω κώδικα ότι μπορούμε να χρησιμοποιήσουμε τους Relational Operators για να πραγματοποιήσουμε τις διάφορες
συγκρίσεις που χρειαζόμαστε.
Προσέξτε με
το διπλό σύμβολο == το οποίο συμβολίζει αλγεβρική σύγκριση και όχι ανάθεση
τιμής. Ο παρακάτω πίνακας σας δείχνει συνοπτικά όλους τους Relational Operators.
Επίσης υπάρχουν και οι Boolean Operators AND ( &&), OR ( || ) και NOT ( ! ).
IF – ELSE STATEMENT
Η παραπάνω
λειτουργία του if statement, αν και είναι επιθυμητή, δεν είναι απολύτως τέλεια. Συνήθως
επιθυμούμε να έχουμε μια σειρά από if statements και να εκτελεστεί μόνο ένα (εκείνο
που πρώτο ικανοποιεί τη συνθήκη) και να αγνοηθούν τα υπόλοιπα. Αυτό μπορούμε να
το πετύχουμε αν προσθέσουμε το else μετά
το if.
App.java
Output
Your grade is a C
Σε αυτό τον
απλό κώδικα του παραπάνω παραδείγματος, αναθέτουμε τη τιμή 79 σε μια int μεταβλητή με το όνομα score. Η τιμή της μεταβλητής ελέγχεται από
μια σειρά if-else statements. Η συνθήκη (score >= 70 && score < 80 ) ικανοποιείται και
επιστρέφει true. Σας θυμίζω ότι για να επιστρέψει true το AND θα πρέπει και οι δύο όροι του να
είναι true.
Επίσης στο
τέλος του κώδικα υπάρχει ένα else μόνο του. Αυτός είναι ο τρόπος που ελέγχουμε για οποιαδήποτε
άλλη κατάσταση που δεν έχουμε γράψει ένα if statement. Έτσι έχουμε τον απόλυτο έλεγχο στο
πρόγραμμα μας γιατί στην ουσία είτε μια τιμή θα ανήκει σε ένα από τα if statements είτε όχι οπότε θα καλυφθεί από το
τελευταίο else.
Μην ξεχάσετε να κάνετε ένα μικρό donation έτσι ώστε αυτό το blog να μεγαλώσει ακόμα πιο πολύ και να έχει περισσότερες δυνατότητες στην online παράδοση δωρεάν μαθημάτων.
0 Comments
Η γνώμη σας είναι σημαντική.