Operators (Τελεστές) C#

Οι τελεστές (Operators) είναι σύμβολα ή λέξεις που αναπαριστούν συγκεκριμένες διεργασίες, οι οποίες εκτελούνται πάνω σε ένα ή περισσότερα δεδομένα. Τα δεδομένα καλούνται τελεστές (operands) και μπορούν να είναι μεταβλητές, σταθερές ή ακόμη και κλήσεις συναρτήσεων.

Οι τελεστές χρησιμοποιούνται για το σχηματισμό εκφράσεων. Μία έκφραση (=Μεταβλητή), εν γένει, αποτελείται από έναν ή περισσότερους τελεστές. Κάθε έκφραση έχει μία τιμή, η οποία υπολογίζεται με ορισμένους κανόνες.

Σύμβολα συνηθισμένων τελεστών

 

Arithmetic (Αριθμητική)

+  -  *  /   %

Logical (Λογική)

&   |   ^   !   ~   &&   ||    

Increment, decrement (Αύξηση, μείωση)

-- ++

Shift (Αλλαγή)

<<   >>

Relational (Σχεσιακή)

==   !=   <   >   <=   >=

Assignment (εκχώρηση)

=   +=   -=   *=   /=   %=   &=   |=   ^=   <<=   >>=

Conditional (υπό όρους)

?:

Boolean

true   false

 

C# Operators (Τελεστές) 

Τα ποιο συνηθισμένα σύμβολα τελεστών

 

Μικρότερο

<

Μικρότερο ή ίσο

<=    

Ίσο

== ή = (ανάλογα την συνθήκη)

Διάφορο

!=

Μεγαλύτερο

Μεγαλύτερο ή ίσο

>=

Πρόσθεση

+

Αφαίρεση

-

Πολλαπλασιασμός

Αληθές/ψευδές (1 ή 0 )

true   false

Διαίρεση

Προτεραιότητα και προσεταιριστικότητα τελεστών στη C#

 

Παράδειγμα τελεστές υπό όρους(Operators Conditional)

Το σύμβολο ‘?’ ακολουθεί τη συνθήκη, και το σύμβολο ‘:’ εμφανίζεται ανάμεσα από τις δύο εκφράσεις. Όλες τις εκφράσεις που πραγματοποιούνται μεταξύ του ‘?’ αλλά και του ‘:’ αντιμετωπίζονται ως μία έκφραση. 

Στο συγκεκριμένο παράδειγμα ο τελεστής (Conditional) επιστρέφει μια τιμή : αληθής (True) ή ψευδείς (False):

static void Main(string[] args)

{

bool Βool_ = true;

string apotelesma = Βool_ ? "Αληθές" : "Ψευδείς";

Console.WriteLine("{0}", apotelesma);

Console.WriteLine(Βool_ ? "Eίναι Αληθές" : "Eίναι Ψευδείς");

Console.Read();

}

 

static void Main(string[] args)

{

bool Βool_ = false;

string apotelesma = Βool_ ? "Αληθές" : "Ψευδείς";

Console.WriteLine("{0}", apotelesma);

Console.WriteLine(Βool_ ? "Eίναι Αληθές" : "Eίναι Ψευδείς ");

Console.Read();

}

  

Παράδειγμα τελεστές Σχεσιακή (Operators Relational)

Προκειμένου να αξιολογηθεί η σύγκριση μεταξύ των δύο εκφράσεων μπορούμε να χρησιμοποιήσουμε τη σχεσιακή (Operators Relational). Το αποτέλεσμα από μια σχεσιακή λειτουργία είναι Boolean τιμή δηλαδή δεν μπορεί παρά να είναι αληθείς ή ψευδείς.

Παράδειγμα:

static void Main(string[] args)

{

Console.WriteLine("Πόσο χρονών είσαι;");

int Age = Convert.ToInt32(Console.ReadLine());

if (Age >= 18)

{

Console.WriteLine("Τότε είσαι ενήλικας");

}

else if (Age < 18)

{

Console.WriteLine("Τότε είσαι ανήλικας");

}

}

  

Παράδειγμα τελεστές Αλφαριθμητικά και ανάθεσης (Arithmetic, Assignment)

Οι αριθμητικοί τελεστές είναι αυτοί που χρησιμοποιούνται για να κάνουν βασικές αριθμητικές πράξεις και στη C# και είναι 5: 

  • πρόσθεση: + 
  • αφαίρεση: – 
  • πολλαπλασιασμός: * 
  • διαίρεση: /  
  • υπόλοιπο διαίρεσης: %

Οι τελεστές εκχώρησης είναι ο “=” και οι συνδυασμοί τελεστών εκχώρησης και αριθμητικών τελεστών.  

Για παράδειγμα:

  •  x+=y ισοδυναμεί με x=x+y 
  •  x-=y ισοδυναμεί με x=x-y 
  •   x*=y ισοδυναμεί με x=x*y 
  •  x/=y ισοδυναμεί με x=x/y
  •  x%=y ισοδυναμεί με x=x%y

static void Main(string[] args)

{

int x, y;

x = 6;

y = 5;

x += y;

Console.WriteLine(x);

}
 

  

static void Main(string[] args)

{

int x, y;

x = 6;

y = 5;

x *= y;

Console.WriteLine(x);

}

  

static void Main(string[] args)

{

int x, y;

x = 5;

y = 50;

x %= y;

Ψonsole.WriteLine(x);

}

  

Μοναδιαίοι τελεστές είναι οι τελεστές προσαύξησης ή μείωσης που αυξάνουν ή μειώνουν την τιμή μιας μεταβλητής κατά 1.

  •  x++; (αυξάνει την τιμή του x κατά 1) 
  •  x- -; (μειώνει την τιμή του x κατά 1)

x* = 10;  εκτελεί την πράξη του πολλαπλασιασμού μεταξύ των x και 10 και εκχωρεί το αποτέλεσμα στο x. Αντιστοιχεί στην πρόταση x = x * 10;

x* = y + 1; Αντιστοιχεί στην πρόταση x = x * (y + 1); κι ΟΧΙ στην πρόταση x = x * y + 1;

Τελεστές ανάθεσης δημιουργούν κι οι τελεστές διαχείρισης δυαδικών ψηφίων (bitwise operators). Οι τελεστές αυτοί είναι: >>=  << =   &=   ^=   |= . Οι τελεστές ανάθεσης μαζί με τους τελεστές αύξησης/μείωσης γίνονται αιτία δημιουργίας παρενεργειών (side effects), για το λόγο αυτό αναφέρονται και ως παρενεργοί τελεστές (side effect operators).

Οι παρενέργειες αυτές έχουν ως αποτέλεσμα την απροσδιόριστη συμπεριφορά του συστήματος ως προς τον τρόπο υπολογισμού της τιμής της μεταβλητής i σε εκφράσεις όπως: i = n[i++];  ή  i = ++i + 1;

Πιο συγκεκριμένα όπως είδατε και παραπάνω οι τελεστές σύγκρισης είναι οι εξής:

  •  == ισότητας (επιστρέφει true αν οι μεταβλητές είναι ίσες) 
  •  != ανισότητας (επιστρέφει true αν οι μεταβλητές δεν είναι ίσες) 
  • < μικρότερο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μικρότερη) 
  • > μεγαλύτερο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μεγαλύτερη) 
  • <= μικρότερο ή ίσο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μικρότερη ή ίση με την μεταβλητή στα δεξιά
  •  >= μεγαλύτερο ή ίσο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μεγαλύτερη ή ίση με την μεταβλητή στα δεξιά) 

Οι λογικοί τελεστές χρησιμοποιούνται για να συνδυαστούν εκφράσεις που παράγουν λογικές τιμές. Χρησιμοποιούνται για τους λογικούς συνδυασμούς and, or, x or, και το λογικό not και είναι οι παρακάτω:

  • &, &&: χρησιμοποιούνται για να εκφράσουν το λογικό and και επιστρέφουν true αν και οι δύο λογικές εκφράσεις είναι true.  
  •  |, ||: χρησιμοποιούνται για να εκφράσουν το λογικό or και επιστρέφουν true αν τουλάχιστον μία από τις δύο λογικές εκφράσεις είναι true.
  • ^ : χρησιμοποιείται για να εκφράσει το λογικό xor και επιστρέφει true μόνο αν οι δύο λογικές εκφράσεις είναι η μία true και η άλλη false.
  • ! : χρησιμοποιείται για να εκφράσει το λογικό not και επιστρέφει true μόνο αν η λογική έκφραση είναι false.