This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
java:operators [2015/07/07 13:24] gthanos |
java:operators [2020/02/20 14:20] gthanos |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Αριθμητικοί τελεστές ===== | ===== Αριθμητικοί τελεστές ===== | ||
- | ^ Operator ^ Description ^ | + | ^ τελεστής ^ περιγραφή ^ |
- | | + | πρόσθεση (ορίζεται για πρόσθεση μεταξύ αριθμών, αλλά και για συνένωση δύο αλφαριθμητικών σε ένα τρίτο) | | + | | + | πρόσθεση (ορίζεται για πρόσθεση μεταξύ αριθμών, αλλά και για συνένωση δύο αλφαριθμητικών) | |
- | | - | αφαίρεση | | + | | - | αφαίρεση | |
| * | πολλαπλασιασμός | | | * | πολλαπλασιασμός | | ||
| / | διαίρεση | | | / | διαίρεση | | ||
| % | ακέραιο υπόλοιπο διαίρεσης | | | % | ακέραιο υπόλοιπο διαίρεσης | | ||
- | Το παρακάτω παράδειγμα χρησιμοποιεί τους παραπάνω τελεστές. | + | Το παρακάτω παράδειγμα από το site της [[https://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/ArithmeticDemo.java|Oracle]] χρησιμοποιεί τους παραπάνω τελεστές. |
<code java ArithmeticDemo.java> | <code java ArithmeticDemo.java> | ||
Line 50: | Line 50: | ||
===== Μοναδιαίοι τελεστές ===== | ===== Μοναδιαίοι τελεστές ===== | ||
- | ^ Operator ^ Description ^ | + | ^ τελεστής ^ περιγραφή ^ |
- | | + | Unary plus operator; indicates positive value (numbers are positive without this, however) | | + | | + | τελεστής θετικού προσήμου. Προσδιορίζει μία θετική αριθμητική τιμή (οι αριθμοί στην Java είναι θετικοί όταν παραλείπεται ο τελεστής προσήμου) | |
- | | - | Unary minus operator; negates an expression | | + | | - | τελεστής αρνητικού προσήμου; | |
- | | ++ | Increment operator; increments a value by 1 | | + | | ++ | τελεστής αύξησης της υφιστάμενης τιμής κατά 1 | |
- | | %%--%% | Decrement operator; decrements a value by 1 | | + | | %%--%% | τελεστής μείωσης της υφιστάμενης τιμής κατά 1 | |
Οι τελεστές αύξησης ή μείωσης της τιμής κατά 1 (++,%%--%%), μπορούν να εφαρμοστούν πριν ή μετά την μεταβλητή. Για παράδειγμα, (result++) και (++result). Η διαφορά είναι ότι στην πρώτη περίπτωση επιστρέφεται η αρχική τιμή πριν από την αύξηση, ενώ στην 2η περίπτωση επιστρέφεται η νέα τιμή (μετά την αύξηση τις τιμής). Τρέξτε το παρακάτω παράδειγμα για να δείτε πως λειτουργεί ο τελεστής. | Οι τελεστές αύξησης ή μείωσης της τιμής κατά 1 (++,%%--%%), μπορούν να εφαρμοστούν πριν ή μετά την μεταβλητή. Για παράδειγμα, (result++) και (++result). Η διαφορά είναι ότι στην πρώτη περίπτωση επιστρέφεται η αρχική τιμή πριν από την αύξηση, ενώ στην 2η περίπτωση επιστρέφεται η νέα τιμή (μετά την αύξηση τις τιμής). Τρέξτε το παρακάτω παράδειγμα για να δείτε πως λειτουργεί ο τελεστής. | ||
Line 81: | Line 81: | ||
^ τελεστής ^ περιγραφή ^ | ^ τελεστής ^ περιγραφή ^ | ||
- | | == | equal to | | + | | == |**έλεγχος ισότητας** Επιστρέφει **true** αν οι τιμές στα αριστερά και δεξιά του τελεστή είναι ίσες | |
- | | != | not equal to | | + | | != |**έλεγχος ανισότητας** Επιστρέφει **true** αν οι τιμές στα αριστερά και δεξιά του τελεστή δεν είναι ίσες | |
- | | > | greater than | | + | | > |**μεγαλύτερο από** Επιστρέφει **true** αν ο αριθμός στα αριστερά είναι μεγαλύτερος το αριθμού στα δεξιά. | |
- | | %%>=%% | greater than or equal to | | + | | %%>=%% |**μεγαλύτερο από ή ίσο με ** Ομοίως με παραπάνω, αλλά επιστρέφει **true** και στην ισότητα. | |
- | | < | less than | | + | | < |**μικρότερο από** Επιστρέφει **true** αν ο αριθμός στα αριστερά είναι μικρότερος το αριθμού στα δεξιά. | |
- | | %%<=%% | less than or equal to | | + | | %%<=%% |**μικρότερο από ή ίσο με** Ομοίως με παραπάνω, αλλά επιστρέφει **true** και στην ισότητα. | |
- | + | ||
===== Λογικοί τελεστές ===== | ===== Λογικοί τελεστές ===== | ||
^ τελεστής ^ περιγραφή ^ | ^ τελεστής ^ περιγραφή ^ | ||
- | | ! | Logical complement operator; inverts the value of a boolean | | + | | ! | **τελεστής λογικής άρνησης**. Επιστρέφει **true** εάν η έκφραση της οποίας προηγείται επιστρέφει **false**. | |
- | | && | Logical AND | | + | | && | **τελεστής λογικού ΚΑΙ (AND)** | |
- | | %%||%% | Conditional-OR | | + | | %%||%% | **τελεστής λογικού H (OR)** | |
- | | ?: | ternary operator | | + | | ?: | ternary operator (τριαδικός τελεστής). Ο τελεστής έχει την ίδια χρήση με τον αντίστοιχο τελεστή στη γλώσσα **C** | |
- | Αξίζει να προσέξετε τον ternary operator που αποτελεί συντμηση μίας δήλωσης ''if-then-else''. Η κλάση ''ConditionalDemo2'' αποτελεί παράδειγμα χρήσης του συγκεκριμένου τελεστή. | + | Αξίζει να προσέξετε τον **ternary operator** που αποτελεί σύντμηση μίας δήλωσης ''if-then-else''. Η κλάση ''ConditionalDemo2'' αποτελεί παράδειγμα χρήσης του συγκεκριμένου τελεστή. |
<code java ConditionalDemo1.java> | <code java ConditionalDemo1.java> | ||
Line 128: | Line 126: | ||
} | } | ||
</code> | </code> | ||
- | |||
- | |||
===== Τελεστής instanceof ===== | ===== Τελεστής instanceof ===== | ||
- | Ο τελεστής ''instanceof'' συγκρίνει ένα αντικείμενο με ένα συγκεκριμένο τύπο δεδομένων (δηλ. κλάση). Με χρήση του τελεστή ''instanceof'' μπορούμε να εξετάσουμε εάν ένα αντικείμενο αποτελεί υλοποίηση μίας κλάσης ή υποκλάσης ή μιας κλάσης που υλοποιεί ένα συγκεκριμένο interface. Δοκιμάστε το παρακάτω παράδειγμα. | + | Ο τελεστής ''instanceof'' συγκρίνει ένα αντικείμενο με ένα συγκεκριμένο τύπο δεδομένων (δηλαδή με μία κλάση). Με χρήση του τελεστή ''instanceof'' μπορούμε να εξετάσουμε εάν ένα αντικείμενο αποτελεί υλοποίηση μίας κλάσης ή υποκλάσης ή μιας κλάσης που υλοποιεί ένα συγκεκριμένο [[java:interfaces|interface]]. Δοκιμάστε το παρακάτω παράδειγμα. |
<code java MyInterface.java> | <code java MyInterface.java> | ||
Line 177: | Line 173: | ||
^ τελεστής ^ επεξήγηση ^ | ^ τελεστής ^ επεξήγηση ^ | ||
| ~ | bitwise complement operator | | | ~ | bitwise complement operator | | ||
- | | %%<<%% | τελεστής ολίσθησης στα αριστερά | | + | | %%<<%% | **τελεστής ολίσθησης στα αριστερά** To LSbit γίνεται 1. | |
- | | %%>>%% | τελεστής ολίσθησης στα δεξιά, το MSBit λαμβάνει υπόψη το πρόσιμο του αριθμού | | + | | %%>>%% | **τελεστής ολίσθησης στα δεξιά** Το νέο MSBit γίνεται όσο ήταν το MSBit πριν την ολίσθηση. | |
- | | & | δυαδικό END | | + | | & | δυαδικό AND | |
| %%|%% | δυαδικό OR | | | %%|%% | δυαδικό OR | | ||
| %%^%% | δυαδικό αποκλειστικό OR (exclusive OR) | | | %%^%% | δυαδικό αποκλειστικό OR (exclusive OR) | | ||
Line 189: | Line 185: | ||
int val = 0x2222; | int val = 0x2222; | ||
// prints "2" | // prints "2" | ||
- | System.out.println(val & bitmask); | + | System.out.println("val & bitmask: " + (val & bitmask)); |
+ | System.out.println("bitmask << 2: " + (bitmask << 2)); | ||
+ | System.out.println("bitmask >> 1: " + (bitmask >> 1)); | ||
+ | System.out.println("bitmask || (bitmask << 8): " + (bitmask | (bitmask << 8)) ); | ||
} | } | ||
} | } | ||
</code> | </code> | ||
- | |[[:java:arrays | Πίνακες ]] | [[:java:control_flow | Έλεγχος ροής προγράμματος ]] | | + | | Προηγούμενο: [[:java:arrays-intro | Πίνακες ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:control_flow | Ροή προγράμματος ]] | |