JAVA - ΕΝΟΤΗΤΑ 5 – Το long Data Type και εισαγωγή αριθμών με την Scanner κλάση
Στην σημερινή ενότητα θα ολοκληρώσουμε την αναφορά μας στα data types των ακεραίων καλύπτοντας το long data type.
Μια μεταβλητή που έχει οριστεί σαν long
data type περιγράφεται από 64-bits
και συνήθως χρησιμοποιείται για
αποτελέσματα αριθμητικών πράξεων όπου
ο τελικός αριθμός δεν μπορεί να περιγραφτεί
με 32-bits που είναι το int
data type.
Όπως
είχαμε αναφέρει και στην προηγούμενη
ενότητα, το data type στο οποίο
η Java πάντα προσπαθεί να
μετατρέψει κάθε ακέραιο αριθμό είναι
το int. Για να μπορέσει η
Java να καταλάβει ότι
αναφερόμαστε αποκλειστικά σε long
μεταβλητή, απαιτεί από τον
προγραμματιστή να προσθέσει ένα L
στο τέλος του αριθμού όπως στο
παρακάτω παράδειγμα:
long num1 =
1234567889L;
Επειδή
ένας int data type έχει μικρότερο
εύρος αριθμών από ότι έχει ένα long
data type, μια τιμή που έχει αποθηκευτεί
σε μια int μεταβλητή μπορεί
να ανατεθεί σε μια long μεταβλητή
χωρίς κανένα casting. Η
αντίστροφη όμως ανάθεση δεν είναι
αποδεκτή από την Java εκτός
και εάν χρησιμοποιήσουμε casting.
Ας δούμε ένα απλό πρόγραμμα που προσθέτει
τρεις long αριθμούς αλλά
αυτή την φορά θα ζητάμε από τον χρήστη
να εισάγει τους αριθμούς ενώ το πρόγραμμα
“τρέχει”. Για να μπορέσουμε να πετύχουμε
κάτι τέτοιο θα πρέπει να χρησιμοποιήσουμε
την κλάση Scanner. Αν και δεν
έχουμε μιλήσει για κλάσεις και αντικείμενα
ακόμα, νομίζω ότι εύκολα θα μπορέσετε
να ακολουθήσετε το παράδειγμα και να
δώσετε ένα πιο διαδραστικό στυλ στον
κώδικα σας. Ας δούμε λοιπόν πρώτα το
παράδειγμα και μετά θα εξηγήσουμε τον
επιμέρους κώδικα.
Ας δούμε λοιπόν αναλυτικά τι συμβαίνει
σε αυτό τον κώδικα. Πάνω από όλα πρέπει
να ορίσουμε ένα αντικείμενο input
από την κλάση Scanner η
οποία κλάση θα ακούει στο default
input του συστήματος που είναι το
terminal. Οπότε με το new
Scanner δημιουργούμε το αντικείμενο
και το System.in του προσδιορίζει
από που θα δέχεται εισαγωγή δεδομένων.
Επειδή
το input είναι αντικείμενο
που προήλθε από την κλάση Scanner,
τότε έχει στην διάθεση του αρκετές
μεθόδους για να καλέσει. Αν γράψετε
input. (μαζί με την τελεία)
θα εμφανιστεί μια λίστα με το τι μπορείτε
να κάνετε (με την μορφή μεθόδων) με αυτό
το αντικείμενο που δημιουργήσατε.
Αν προσέξετε την πιο πάνω εικόνα υπάρχει
για κάθε data type και μια
αντίστοιχη μέθοδο. Με αυτό τον τρόπο
ζητάμε συγκεκριμένο είδος δεδομένων
από τον χρήστη και αφού το λάβουμε το
αναθέτουμε στην κατάλληλη μεταβλητή
χωρίς να χρειάζεται μετατροπή. Το πρώτο
μήνυμα ειδοποιεί τον χρήστη ότι περιμένει
από αυτόν να του τυπώσει ένα long
αριθμό. Όταν ο χρήστης το τυπώσει,
τότε το πρόγραμμα το διαβάζει με το
nextLong( ) και το αναθέτει σε
μια μεταβλητή number1. Αν
ζητούσαμε, για παράδειγμα, από τον χρήστη
να εισάγει έναν int αριθμό
θα είχαμε χρησιμοποιήσει την nextInt(
). Με την ίδια λογική ακριβώς ζητάμε
από τον χρήστη να εισάγει δύο ακόμα long
αριθμούς. Μετά την εισαγωγή και του
τελευταίου αριθμού, προσθέτουμε τις
τιμές που έχουμε λάβει και αναθέτουμε
τηνt τιμή σε μια νέα long
μεταβλητή με το όνομα sum.
Το τελικό μήνυμα προς τον χρήστη
είναι το αποτέλεσμα της πρόσθεσης των
τριών αριθμών.
Μιχάλης
Κασάπογλου