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. Το τελικό μήνυμα προς τον χρήστη είναι το αποτέλεσμα της πρόσθεσης των τριών αριθμών.

Μιχάλης Κασάπογλου

Archive

Contact Form

Send