ΕΙΣΑΓΩΓΗ
Στο σημερινό δωρεάν μάθημα θα μιλήσουμε για τα δύο τελευταία primitive data types που μας έχουν μείνει – το boolean και το char.
Το boolean θα το συναντήσουμε πολύ συχνά κυρίως
όταν αρχίσουμε από την επόμενη ενότητα να μιλάμε για if-else statements.
BOOLEAN DATA TYPE
Μια
μεταβλητή είδος boolean μπορεί μόνο να ισούται με τη λέξη κλειδί true ή τη λέξη κλειδί false. Οι δύο συγκεκριμένες λέξεις δεν
μπορούν να χρησιμοποιηθούν σαν ονόματα μεταβλητών. Είναι reserved words από την Java για να ορίζουν boolean τιμές.
Ας δούμε ένα
απλό παράδειγμα που μας δείχνει με εύκολο τρόπο πως ορίζουμε boolean μεταβλητές και πως αναθέτουμε τιμές
σε αυτές.
App.java
Output
t is true
y is false
Στο παραπάνω
πρόγραμμα ορίζουμε μια boolean μεταβλητή με το όνομα t και της αναθέτουμε την αρχική τιμή true. Όταν ζητήσουμε να δούμε με τι τιμή ισούται η
μεταβλητή t, λογικό είναι να πάρουμε σαν αποτέλεσμα το true σαν απάντηση.
Πολλές φορές
η ανάθεση τιμής σε μια boolean μεταβλητή δεν γίνεται άμεσα δηλώνοντας true ή false αλλά και έμμεσα από το αποτέλεσμα
μιας συνθήκης όπως συμβαίνει με τη μεταβλητή y. Στη συγκεκριμένη γραμμή κώδικα,
συγκρίνεται η τιμή του x (που έχει οριστεί στη προηγούμενη γραμμή με την τιμή 10) με
την τιμή 15. Επειδή το x δεν είναι μεγαλύτερο του 15 τότε η τιμή που θα ανατεθεί στη boolean μεταβλητή y είναι η τιμή false.
Πριν
προχωρήσουμε στο char data type, ας αναφερθούμε σε ένα λάθος που
κάνουν συχνά οι προγραμματιστές που προέρχονται από άλλες γλώσσες
προγραμματισμού. Στη java το boolean data type δεν μπορεί να δεχτεί integer τιμή. Δεν μπορούμε δηλαδή να
αναθέσουμε στο false την τιμή 0 και true την τιμή 1. Στη Java μια boolean μεταβλητή μπορεί να είναι μόνο true ή false και τίποτα άλλο.
CHAR DATA TYPE
Το char data type αντιπροσωπεύει μεμονωμένους
χαρακτήρες στη Java. Για να δηλώσουμε σωστά μια char τιμή θα πρέπει η τιμή (δηλαδή ο
χαρακτήρας) να είναι μέσα σε single quotes (‘ ‘ ). Προσέξτε,
γιατί αν βάλετε double quotes ( “ “ ) σε ένα χαρακτήρα τότε αυτή η τιμή δεν
αντιπροσωπεύει ένα char data type αλλά ένα String.
Ίσως κάποιες
φορές να δείτε την τιμή του χαρακτήρα να συνδυάζεται με ένα backslash ( \ ). Αυτό μας
δίνει την δυνατότητα να ορίσουμε οποιοδήποτε Unicode character επιθυμούμε. Υπάρχουν και κάποιες ακόμα ιδιότητες του char data type στις οποίες θα αναφερθούμε αμέσως
μετά αφού γράψετε και εκτελέσετε το παρακάτω πρόγραμμα.
App.java
Output
131
a + b is AB
y is K and the symbol for greek letter delta is Δ
Ας δούμε
λοιπόν τι έχουμε εδώ αφού ίσως να έχετε μπερδευτεί με το αποτέλεσμα που βλέπετε
στο terminal. Ξεκινάμε δηλώνοντας μια char μεταβλητή με το όνομα a και αναθέτοντας σε αυτή την τιμή ‘Α’.
Μετά προσθέτουμε τον αριθμό 1 στη μεταβλητή a. Η java βλέποντας το σύμβολο της πρόσθεσης
ανάμεσα σε ένα char και ένα int, μετατρέπει το χαρακτήρα A στην αντίστοιχη ASCII τιμή ( η οποία για το κεφαλαίο Α είναι το 65) και εκτελεί την
πράξη της πρόσθεσης ανάμεσα σε δύο αριθμούς. Το αποτέλεσμα, που είναι ο αριθμός
66, το μετατρέπουμε με casting πίσω σε χαρακτήρα (με βάση τον ASCII πίνακα είναι το B) και το αναθέτουμε στη char μεταβλητή b.
Όταν τώρα
προσπαθούμε να τυπώσουμε το αποτέλεσμα του a + b παίρνουμε τον αριθμό 131 γιατί η Java μετατρέπει τις μεταβλητές στις αντίστοιχες
int τιμές (με
βάση τον ASCII πίνακα)
πριν εκτελέσει την πρόσθεση.
Στο αμέσως
επόμενο println( ) το αποτέλεσμα είναι διαφορετικό, γιατί το πρώτο σκέλος της
println( ) μεθόδου
είναι String. Οπότε η Java αγνοεί τις πράξεις που ακολουθούν μετά το String και απλά κολλάει τους χαρακτήρας το
ένα δίπλα στο άλλο. Με άλλα λόγια String με οτιδήποτε άλλο data type θα σας τυπώσει ένα String με όλες τις τιμές κολλημένες η μια
δίπλα στην άλλη. Αυτό ονομάζεται concatenation στη Java.
Συνεχίζοντας
στην επόμενη γραμμή κώδικα, χρησιμοποιούμε την λογική ότι οι αριθμοί (μέσα στα
όρια του ASCII πίνακα)
μπορούν να μετατραπούν σε char.
Τέλος,
χρησιμοποιώντας το forward slash ( \ ) και ένα δεκαεξαδικό αριθμό από το Unicode πίνακα, μπορούμε να τυπώσουμε
ειδικούς χαρακτήρες και γράμματα από άλλες γλώσσες όπως το ελληνικό γράμμα Δ.
Μην ξεχάσετε να κάνετε ένα μικρό donation έτσι ώστε αυτό το blog να μεγαλώσει ακόμα πιο πολύ και να έχει περισσότερες δυνατότητες στην online παράδοση δωρεάν μαθημάτων.
0 Comments
Η γνώμη σας είναι σημαντική.