C# COMPLETE COURSE
ΕΝΟΤΗΤΑ 3 - VARIABLES
INTRODUCTION
Σε αυτό το δωρεάν μάθημα C# θα ξεκινήσουμε με τον ορισμό της μεταβλητής, τι είναι το Stack και πως χρησιμοποιείται για την αποθήκευση τιμών, ποιους κανόνες πρέπει να ακολουθήσουμε για τη σωστή ονομασία των μεταβλητών και τέλος θα δημιουργήσουμε ένα απλό πρόγραμμα για να δούμε πως ορίζουμε μεταβλητές μέσα στο κώδικα μας.
WHAT IS A VARIABLE?
Ας υποθέσουμε ότι έχετε γράψει μια C# εφαρμογή η οποία ζητάει από τον τελικό χρήστη να εισάγει κάποιες τιμές. Εσείς, σαν προγραμματιστές, έχετε την υποχρέωση να συλλέξετε αυτές τις τιμές και να τις αποθηκεύσετε προσωρινά για να μπορέσετε να τις χρησιμοποιήσετε μέσα στον κώδικα σας όποτε τις χρειαστείτε. Που όμως και με ποιο τρόπο θα αποθηκεύσετε τις τιμές που έχει εισάγει ο χρήστης; Παρουζιάζεται λοιπόν η ανάγκη να χρησιμοποιήσουμε την μνήμη του υπολογιστή για αυτό το σκοπό. Αν τώρα οι τιμές είναι αποθηκευμένες προσωρινά στην μνήμη του υπολογιστή, πως μπορούμε να τις καλέσουμε και να τις χρησιμοποιήσουμε; Αυτό μπορούμε να το καταφέρουμε δίνοντας ονόματα σε κάθε μια από τις τοποθεσίες της μνήμης στις οποίες έχουμε αποθηκεύσει τα δεδομένα μας. Οπότε τι είναι ακριβώς μια variable; Σαν Variable ορίζουμε το όνομα που δίνουμε σε μια τοποθεσία της μνήμης του υπολογιστή την οποία έχουμε δεσμεύσει για την προσωρινή αποθήκευση κάποιας τιμής.
LET'S LEARN MORE ABOUT VARIABLES
Ο πρώτος και απόλύτος κανόνας που αφορά τις μεταβλητές είναι ότι κάθε μεταβλητή μπορεί να αποθηκεύσει μόνο μια τιμή.
Επίσης, όπως ήδη γνωρίζουμε από το προηγούμενο δωρεάν μάθημα C#, ο κώδικας μας θα είναι γραμμένος μέσα σε μια ή περισσότερες μεθόδους. Η περιοχή της μνήμης που αποθηκεύονται οι μεταβλητές ονομάζεται Stack και δημιουργείται κάθε φορά που καλούμε και εκτελούμε μια μέθοδο που στη δική μας περίπτωση, και μέχρι να μάθουμε να ορίζουμε τις δικές μας μεθόδους, είναι η Main. Κάθε φορά λοιπόν που εκτελούμε μια μέθοδο ένα καινούργιο Stack θα δημιουργείται και εκεί θα αποθηκεύονται οι μεταβλητές που έχουμε ορίσει. Οι μεταβλητές που περιέχει κάθε μέθοδος ονομάζονται local variables. Οπότε, για παράδειγμα, όποτε καλούμε να εκτελέσουμε την Main μέθοδο ένα καινούργιο Stack θα δημιουργηθεί μέσα στο οποίο θα αποθηκεύονται οι μεταβλητές που έχουμε ορίσει. Όταν η εκτέλεση της μεθόδου ολοκληρωθεί τότε το Stack αυτόματα διαγράφεται από την μνήμη και μαζί και οι τιμές των μεταβλητών. Για αυτό το λόγο θεωρούμε τις local variables να είναι προσωρινές με μικρή διάρκεια ζωής μέσα στον κώδικα.
Στην C# όλες οι μεταβλητές πρέπει να δηλωθούν πριν χρησιμοποιηθούν. Επίσης κατά τη δήλωση της κάθε μεταβλητής, θα πρέπει να καθορίζουμε και το τύπο των δεδομένων που θα δέχεται. Ο τύπος των δεδομένων για την κάθε μεταβλητή δεν μπορεί να αλλάξει, η τιμή της μεταβλητής όμως μπορεί να αλλάξει πολλές φορές κατά την διάρκεια εκτέλεσης του προγράμματος.
Αυτό σημαίνει ότι εάν δηλώσετε ότι μια μεταβλητή θα δέχεται μόνο ακέραιους αριθμούς (για παράδειγμα int x) τότε όλες οι τιμές που θα πρέπει να αναθέσουμε στην μεταβλητή χ θα πρέπει να είναι ακέραιοι αριθμοί και τίποτα άλλο. Επίσης πριν προσπαθήσουμε να διαβάσουμε την τιμή που περιέχει μια μεταβλητή θα πρέπει πρώτα να τις έχουμε αναθέσει κάποια τιμή.
HOW WE DECLARE A VARIABLE
Για να ορίσουμε μια μεταβλητή, θα πρέπει να ορίσουμε αρχικά το όνομα της και το τύπο των δεδομένων που θα δέχεται. Αφού ορίσουμε αυτά τα δύο στοιχεία τότε θα πρέπει να κλείσουμε τη δήλωση με το semicolon ( ; ) σύμβολο.
Με αυτό το βήμα ορίζουμε αρχικά μια μεταβλητή. Τώρα, και επειδή η μεταβλητή είναι μέσα σε μια μέθοδο (στη Main), αποθηκεύεται αυτόματα στο Stack και έχει δεσμεύσει ένα κομμάτι μνήμης στο οποίο και θα αποθηκεύονται οι τιμές που θα πάρει. Ανάθεση τιμής σε μια μεταβλητή μπορούμε να κάνουμε είτε αμέσως μετά τον ορισμό της, είτε ταυτόχρονα την στιγμή που την ορίζουμε.
Σε αυτή την περίπτωση η μεταβλητή θα δημιουργηθεί στο Stack και ταυτόχρονα θα αρχικοποιηθεί με κάποια τιμή. Για παράδειγμα, x = 100;. Η μεταβλητή με όνομα x θα αποθηκευτεί στο Stack και η τιμή 100 θα αποθηκευτεί μέσα στη μεταβλητή x.
Από τη στιγμή που οριστεί η μεταβλητή, μπορούμε να αναθέσουμε (assign) τιμές σε αυτή όσες φορές θέλουμε και είναι απαραίτητο με βάση τη λογική του προγράμματος μας. Η ανάθεση γίνεται απλά με το όνομα της μεταβλητής, το σύμβολο του ίσον ( = ) και την τιμή.
Τέλος, κάθε φορά που επιθυμούμε να γνωρίζουμε την τιμή που περιέχει η μεταβλητή, δεν έχουμε παρά να καλέσουμε απλά το όνομα της μέσα στο κώδικα μας.
Με την μεταβλητή, και κατά συνέπεια με την τιμή που περιέχει, μπορούμε να κάνουμε αριθμητικές πράξεις, να αναθέσουμε την τιμή σε μια άλλη δεύτερη μεταβλητή, ή απλά να παρουσιάσουμε τις τιμές στον τελικό χρήστη μέσω των μεθόδων Write και WriteLine.
HOW TO NAME A VARIABLE
Όπως σε κάθε γλώσσα προγραμματισμού, έτσι και στη C# υπάρχουν μερικοί απλοί κανόνες που πρέπει να ακολουθήσουμε για να ονομάσουμε σωστά τις μεταβλητές.
Πολλές φορές χρησιμοποιούμε δύο λέξεις ή και περισσότερες λέξεις για να ορίσουμε το όνομα της μεταβλητής. Ανάμεσα στις λέξεις δεν επιτρέπεται να υπάρχει κενό. Βασικά δεν επιτρέπεται να έχουμε κενό ανάμεσα στα γράμματα από το οποίο αποτελείται το όνομα της μεταβλητής.
Στο όνομα της μεταβλητής τα μόνα στοιχεία που μπορούμε να χρησιμοποιήσουμε είναι γράμματα και το underscore ( _ ). οποιοδήποτε άλλο σύμβολο, όπως #, *, + κτλ, δεν επιτρέπεται να χρησιμοποιηθεί.
Δεν μπορούμε να δημιουργήσουμε πολλαπλές μεταβλητές με το ίδιο όνομα άσχετα αν ο τύπος των δεδομένων που δέχονται είναι διαφορετικός. Το όνομα κάθε μεταβλητής μέσα σε μια μέθοδο πρέπει να είναι μοναδικό.
Στην C# υπάρχουν μερικές λέξεις οι οποίες είναι δεσμευμένες και δεν μπορούμε να χρησιμοποιήσουμε τα ονόματα τους για ονόματα μεταβλητών. Για παράδειγμα, λέξεις όπως void, class, int, κτλ. έχουν προκαθορισμένη λειτουργία μέσα στη C# και δεν επιτρέπεται η χρήση τους έξω από αυτό που έχουν προγραμματιστεί να κάνουν.
Τέλος πριν προχωρήσουμε σε ένα απλό παράδειγμα, θα πρέπει να αναφερθούμε στο γεγονός ότι γενικότερα οι προγραμματιστές χρησιμοποιούν camelCase για την ονομασία των μεταβλητών. Εάν για παράδειγμα το όνομα της μεταβλητής είναι συνδυασμός δύο ή περισσοτέρων λέξεων τότε το πρώτο γράμμα της πρώτης λέξης είναι μικρό (πεζό) ενώ τα πρώτα γράμματα από τις υπόλοιπες λέξεις είναι κεφαλαία.
WRITING A PROGRAM THAT INCLUDES VARIABLES
Στο παρακάτω πρόγραμμα ορίζουμε μια μεταβλητή με το όνομα studentName η οποία θα μπορεί να δέχεται τιμές είδους string, δηλαδή πολλαπλούς χαρακτήρες. Στην ίδια γραμμή που ορίζουμε την μεταβλητή κάνουμε ταυτόχρονα και ανάθεση της τιμής "George" σε αυτή. Με τον ίδιο τρόπο ορίζουμε μια μεταβλητή με το όνομα age η οποία θα δέχεται μόνο ακέραιους αριθμούς και εξ αρχής θα έχει τον αριθμό 25.
Αμέσως μετά τον ορισμό των μεταβλητών, καλούμε την static μέθοδο Write για να δείξουμε ένα μήνυμα στο τελικό χρήστη. Επειδή η Write δεν μετακινεί τον cursor στην επόμενη γραμμή, τότε όλα τα μηνύματα θα εμφανιστούν μαζί σχηματίζοντας μια πρόταση. Αυτό που πρέπει να προσέξετε είναι ότι για να τυπώσουμε την τιμή που περιέχει η μεταβλητή καλούμε το όνομα της χωρίς τα double quotes.
Program.cs
Output
Πριν κλείσουμε αυτό το δωρεάν μάθημα C# θα ήθελα να αναφερθώ στο γεγονός ότι η C# δεν έχει global μεταβλητές όπως έχουν άλλες γλώσσες προγραμματισμού. Οι μόνες μεταβλητές που θα ορίσουμε θα είναι είτε local variables και να είναι γραμμένες μέσα σε κάποια μέθοδο, είτε instance variables γιατί θα ανήκουν σε κάποιο αντικείμενο. Για αυτά όμως θα μιλήσουμε αργότερα σε μελλοντικά δωρεάν μαθήματα C#.
ΕΙΣΗΓΗΤΗΣ
Μιχάλης Κασάπογλου
Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.