JAVA ΕΝΟΤΗΤΑ 8 – BOOLEAN AND CHAR DATA TYPES

 


ΕΙΣΑΓΩΓΗ

Στο σημερινό δωρεάν μάθημα θα μιλήσουμε για τα δύο τελευταία primitive data types που μας έχουν μείνει – το boolean και το char

Το boolean θα το συναντήσουμε πολύ συχνά κυρίως όταν αρχίσουμε από την επόμενη ενότητα να μιλάμε για if-else statements.

BOOLEAN DATA TYPE

Μια μεταβλητή είδος boolean μπορεί μόνο να ισούται με τη λέξη κλειδί true ή τη λέξη κλειδί false. Οι δύο συγκεκριμένες λέξεις δεν μπορούν να χρησιμοποιηθούν σαν ονόματα μεταβλητών. Είναι reserved words από την Java για να ορίζουν boolean τιμές.

Ας δούμε ένα απλό παράδειγμα που μας δείχνει με εύκολο τρόπο πως ορίζουμε boolean μεταβλητές και πως αναθέτουμε τιμές σε αυτές.

App.java

package com.example;

public class App {

    public static void main(String[] args) {
        boolean t = true;
        System.out.println("t is " + t);
        int x = 10;
        boolean y = (x > 15);
        System.out.println("y is " + y);
    }
}

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

package com.example;

public class App {

    public static void main(String[] args) {
        char a = 'A';
        char b = (char) (a + 1);
        System.out.println(a + b);
        System.out.println("a + b is " + a + b);
        int x = 75;
        char y = (char) x;
        char copy = '\u0394';
        System.out.println("y is " + y +" and the symbol for greek letter delta is " + copy);
    }
}

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 παράδοση δωρεάν μαθημάτων.


full-width

Post a Comment

0 Comments