C# COMPLETE COURSE

image description

ΕΝΟΤΗΤΑ 5 - OPERATORS (PART 1)

INTRODUCTION

Σε αυτό το δωρεάν μάθημα C# θα αναφερθούμε στους πιο χρήσιμους operators και τις διάφορες κατηγορίες στις οποίες έχουν χωριστεί. θα δούμε πολλά απλά παραδείγματα για να καταλάβετε καλύτερα την σωστή χρήση τους και επίσης θα κάνουμε μια εκτεταμένη αναφορά στο online documentation της C# για να γνωρίζετε που ακριβώς να αναφερθείτε αν χρειαστείτε περισσότερες πληροφορίες.

WHAT IS AN OPERATOR?

Σαν operators ορίζουμε εκείνα τα σύμβολα που μας βοηθάνε να πραγματοποιήσουμε μια συγκεκριμένη πράξη όπως πρόσθεση, σύγκριση κτλ. και ενώ δέχονται έναν ή και περισσότερους όρους (operands) πάντα επιστρέφουν μόνο μια τιμή. Για παράδειγμα σκεφτείτε ότι έχουμε να πραγματοποιήσουμε την αριθμητική πράξη 10 + 5 = 15. Οι αριθμοί 10 και 5 είναι οι operands ενώ το σύμβολο = και το σύμβολο + είναι operators. Οπότε σε αυτή την απλή πράξη μπορούμε να πούμε ότι ο operator + λαμβάνει δύο operands (τον αριθμό 10 και τον αριθμό 5) και αφού τους προσθέσει επιστρέφει μέσω του operator = την τιμή 15.

Στην C# έχουμε αρκετούς operators για να μας διευκολύνουν με διάφορες πράξεις και χωρίζονται σε διάφορες κατηγορίες: arithmetic operators, assignment operators, increment και decrement operators, comparison operators, logical operators, concatenation operators, ternary operators και πολλούς άλλους. Αυτοί όμως οι operators που μόλις αναφέραμε θα είναι και το κύριο θέμα της συζήτηση μας σε αυτό και στο επόμενο δωρεάν μάθημα C#.

ARITHMETIC OPERATORS

Σε αυτή την κατηγορία ανήκουν εκείνοι οι operators που μας βοηθάνε να πραγματοποιήσουμε αριθμητικές πράξεις όπως πρόσθεση, αφαίρεση, πολλαπλασιασμό, διαίρεση κτλ. Αν επιθυμείτε να δείτε την ολοκληρωμένη λίστα με όλους τους arithmetic operators μπορείτε να αναφερθείτε στο documentation της C# (//learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/arithmetic-operators).

Δωρεάν Μαθήματα C#

Ας δούμε ένα απλό πρόγραμμα στο οποίο χρησιμοποιούμε όλους τους βασικούς arithmetic operators και μετά θα εξηγήσουμε τα σημαντικότερα σημεία του κώδικα.

Program.cs

Output

Στο απλό παραπάνω παράδειγμα δημιουργούμε δύο μεταβλητές τύπου decimal που μας επιτρέπει να πραγματοποιούμε πράξεις με μεγάλους αριθμούς και με μεγάλη ακρίβεια. Οι τέσσερις πρώτοι operators αντιπροσωπεύουν τις απλές αλγεβρικές πράξεις που νομίζω ότι όλοι σας γνωρίζετε - πρόσθεση, αφαίρεση, πολλαπλασιασμός και διαίρεση με τη σειρά που εκτελούνται στο κώδικα. Μετά την ολοκλήρωση της κάθε πράξης, γίνεται ανάθεση της τιμής στην μεταβλητή που έχει οριστεί στα αριστερά του = operator. Σαν γενικό κανόνα, μπορούμε να κρατήσουμε το γεγονός ότι όποτε έχουμε το = operator πρώτα εκτελούνται οι πράξεις από τα δεξιά του operator και μετά γίνεται η ανάθεση της τιμής στην μεταβλητή που έχουμε ορίσει από την αριστερή πλευρά του operator. Αυτή η διαδικασία εξηγεί άλλωστε πως πρακτικά εκτελείται η ανάθεση μια τιμής σε μια μεταβλητή.

Ένας χρήσιμος operator που παρουσιάζει το παραπάνω παράδειγμα είναι ο % remainder operator ο οποίος μας επιστρέφει το υπόλοιπο της διαίρεσης.

ASSIGNMENT OPERATORS

Στους assignment operators ανήκει το γνωστό σύμβολο = στο οποίο ήδη έχουμε αναφερθεί. Όμως δεν υπάρχουν και μερικοί ακόμα assignment operators που μας βοηθάνε στο να γράφουμε λιγότερο κώδικα. Για παράδειγμα, για να αυξήσουμε την τιμή μιας μεταβλητής κατά μια μονάδα δεν έχουμε παρά να γράψουμε τον εξής κώδικα:

a = a + 1

Η πράξη ξεκινάει από τα δεξιά του = operator. Διαβάζουμε λοιπόν την τιμή που ήδη έχει η τιμή a και προσθέτουμε τον αριθμό ένα αυτή. Το αποτέλεσμα της πρόσθεσης το αναθέτουμε πάλι στην ίδια μεταβλητή αντικαθιστώντας την παλιά τιμή με την καινούργια. Φυσικά δεν είναι ανάγκη να αυξήσουμε την τιμή κατά μία μονάδα. Θα μπορούσαμε να την αυξήσουμε κατά 3 ή 5 ή ακόμα και να την μειώσουμε.

Αυτός ο τρόπος ανάπτυξης του κώδικα είναι πολύ συνηθισμένος σε πολλά προγράμματα, όμως θα μπορούσε να απλοποιηθεί ακόμα πιο πολύ αν χρησιμοποιούσαμε τον += assignment operator. Αντί λοιπόν να γράφουμε a = a + 1 μπορούμε να γράψουμε a += 1 και εννούμε ακριβώς την ίδια λογική.

Ο γενικός κανόνας είναι: a = a + 1 μπορεί να απλοποιηθεί σε a += 1

Οι πιο κοινοί assignment operators δίνονται στον παρακάτω πίνακα ενώ τους υπόλοιπους που αναφέρονται στο documentation της C# (https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/assignment-operator) θα τους αναλύσουμε σε μελλοντικές ενότητες.

Ας δούμε πως μπορούμε να χρησιμοποιήσουμε αυτούς τους απλούς assignment operators σε ένα απλό πρόγραμμα.

Program.cs

Output

INCREMENT / DECREMENT OPERATORS

Όταν συγκεκριμένα θέλουμε να αυξήσουμε την τιμή μιας μεταβλητής κατά μια μονάδα (ή αντίστοιχα να την μειώσουμε), υπάρχει ένας ακόμα πιο σύντομος τρόπος ο οποίος είναι η χρησιμοποίηση των increment και decrement operators.

Για να αυξήσουμε την τιμή της μεταβλητής δεν έχουμε παρά να προσθέσουμε τα σύμβολα ++ πριν ή μετά το όνομα της μεταβλητής χωρίς να αφήσουμε κενό ανάμεσα στα σύμβολα και την μεταβλητή. Αντίστοιχα χρησιμοποιούμε τα σύμβολα -- για να μειώσουμε την τιμή της μεταβλητής κατά μια μονάδα. Υπάρχει όμως μια μεγάλη διαφορά ως προς την τοποθέτηση των συμβόλων. Αν προσθέσουμε τα σύμβολα μπροστά από το όνομα της μεταβλητής, τότε πρώτα αυξάνεται (ή μειώνεται) η τιμή και μετά μας επιστρέφεται το τελικό αποτέλεσμα, ενώ όταν τα σύμβολα είνα μετά από το όνομα τότε πρώτα μας επιστρέφεται η τιμή της μεταβλητής και μετά αυξάνεται (ή μειώνεται) κατά μια μονάδα. Ο παρακάτω πίνακας σας περιγράφει συνοπτικά αυτές τις διαδικασίες.

Ας βάλουμε όλους τους increment και decrement operators σε ένα απλό πρόγραμμα για να είναι εύκολο να συγκρίνουμε τι πέρνουμε σαν αποτέλεσμα κάθε φορά ανάλογα με την θέση τους σε σχέση με την μεταβλητή.

Program.cs

Output

COMPARISON OPERATORS

Πολύ σύντομα θα αρχίσουμε να μελετάμε τα if-else statements όπου το πρόγραμμα μας με βάση την συνθήκη που θα ορίσουμε θα αποφασίζει ποιο μέρος του κώδικα θα πρέπει να εκτελεστεί. Μια συνθήκη στην C# δημιουργείτε χρησιμοποιώντας comparison operators που στην ουσία αυτό που εκτελούν είναι μια σύγκριση δύο όρων (αν είναι ίσοι, αν ο πρώτος όρος είναι μεγαλύτερος από τον δεύτερο, αν οι δύο όροι είναι διαφορετικοί κτλ.). Το αποτέλεσμα που επιστρέφει πάντα ένας comparison operator είναι true ή false. Μπορείτε να βρείτε όλες τις σχετικές πληροφορίες στο documentation της C# (https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/comparison-operators)

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

Program.cs

Output

ΕΙΣΗΓΗΤΗΣ

Merry Jhonson

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

Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.

loader