java:operators

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Τελεστές ====== ===== Αριθμητικοί τελεστές ===== ^ τελεστής ^ περιγραφή ^ | + | πρόσθεση (ορίζεται για πρόσθεση μεταξύ αριθμών, αλλά και για συνένωση δύο αλφαριθμητικών) | | - | αφαίρεση | | * | πολλαπλασιασμός | | / | διαίρεση | | % | ακέραιο υπόλοιπο διαίρεσης | Το παρακάτω παράδειγμα από το site της [[https://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/ArithmeticDemo.java|Oracle]] χρησιμοποιεί τους παραπάνω τελεστές. <code java ArithmeticDemo.java> class ArithmeticDemo { public static void main (String[] args) { int result = 1 + 2; // result is now 3 System.out.println("1 + 2 = " + result); int original_result = result; result = result - 1; // result is now 2 System.out.println(original_result + " - 1 = " + result); original_result = result; result = result * 2; // result is now 4 System.out.println(original_result + " * 2 = " + result); original_result = result; result = result / 2; // result is now 2 System.out.println(original_result + " / 2 = " + result); original_result = result; result = result + 8; // result is now 10 System.out.println(original_result + " + 8 = " + result); original_result = result; result = result % 7; // result is now 3 System.out.println(original_result + " % 7 = " + result); } } </code> ===== Μοναδιαίοι τελεστές ===== ^ τελεστής ^ περιγραφή ^ | + | τελεστής θετικού προσήμου. Προσδιορίζει μία θετική αριθμητική τιμή (οι αριθμοί στην Java είναι θετικοί όταν παραλείπεται ο τελεστής προσήμου) | | - | τελεστής αρνητικού προσήμου; | | ++ | τελεστής αύξησης της υφιστάμενης τιμής κατά 1 | | %%--%% | τελεστής μείωσης της υφιστάμενης τιμής κατά 1 | Οι τελεστές αύξησης ή μείωσης της τιμής κατά 1 (++,%%--%%), μπορούν να εφαρμοστούν πριν ή μετά την μεταβλητή. Για παράδειγμα, (result++) και (++result). Η διαφορά είναι ότι στην πρώτη περίπτωση επιστρέφεται η αρχική τιμή πριν από την αύξηση, ενώ στην 2η περίπτωση επιστρέφεται η νέα τιμή (μετά την αύξηση τις τιμής). Τρέξτε το παρακάτω παράδειγμα για να δείτε πως λειτουργεί ο τελεστής. <code java PrePostDemo.java> class PrePostDemo { public static void main(String[] args){ int i = 3; i++; // prints 4 System.out.println(i); ++i; // prints 5 System.out.println(i); // prints 6 System.out.println(++i); // prints 6 System.out.println(i++); // prints 7 System.out.println(i); } } </code> ===== Τελεστές ελέγχου ισότητας, ανισότητας ===== ^ τελεστής ^ περιγραφή ^ | == |**έλεγχος ισότητας** Επιστρέφει **true** αν οι τιμές στα αριστερά και δεξιά του τελεστή είναι ίσες | | != |**έλεγχος ανισότητας** Επιστρέφει **true** αν οι τιμές στα αριστερά και δεξιά του τελεστή δεν είναι ίσες | | > |**μεγαλύτερο από** Επιστρέφει **true** αν ο αριθμός στα αριστερά είναι μεγαλύτερος το αριθμού στα δεξιά. | | %%>=%% |**μεγαλύτερο ή ίσο από** Ομοίως με παραπάνω, αλλά επιστρέφει **true** και στην ισότητα. | | < |**μικρότερο από** Επιστρέφει **true** αν ο αριθμός στα αριστερά είναι μικρότερος το αριθμού στα δεξιά. | | %%<=%% |**μικρότερο ή ίσο από** Ομοίως με παραπάνω, αλλά επιστρέφει **true** και στην ισότητα. | ===== Λογικοί τελεστές ===== ^ τελεστής ^ περιγραφή ^ | ! | **τελεστής λογικής άρνησης**. Επιστρέφει **true** εάν η έκφραση της οποία προηγείται επιστρέφει **false**. | | && | **τελεστής λογικού ΚΑΙ (AND)** | | %%||%% | **τελεστής λογικού H (OR)** | | ?: | ternary operator (τριαδικός τελεστής). Ο τελεστής έχει την ίδια χρήση με τον αντίστοιχο τελεστή στη γλώσσα **C** | Αξίζει να προσέξετε τον **ternary operator** που αποτελεί σύντμηση μίας δήλωσης ''if-then-else''. Η κλάση ''ConditionalDemo2'' αποτελεί παράδειγμα χρήσης του συγκεκριμένου τελεστή. <code java ConditionalDemo1.java> class ConditionalDemo1 { public static void main(String[] args){ int value1 = 1; int value2 = 2; if((value1 == 1) && (value2 == 2)) System.out.println("value1 is 1 AND value2 is 2"); if((value1 == 1) || (value2 == 1)) System.out.println("value1 is 1 OR value2 is 1"); } } </code> <code java ConditionalDemo2.java> class ConditionalDemo2 { public static void main(String[] args){ int value1 = 1; int value2 = 2; int result; boolean someCondition = true; result = someCondition ? value1 : value2; System.out.println(result); } } </code> ===== Τελεστής instanceof ===== Ο τελεστής ''instanceof'' συγκρίνει ένα αντικείμενο με ένα συγκεκριμένο τύπο δεδομένων (δηλαδή με μία κλάση). Με χρήση του τελεστή ''instanceof'' μπορούμε να εξετάσουμε εάν ένα αντικείμενο αποτελεί υλοποίηση μίας κλάσης ή υποκλάσης ή μιας κλάσης που υλοποιεί ένα συγκεκριμένο [[java:interfaces|interface]]. Δοκιμάστε το παρακάτω παράδειγμα. <code java MyInterface.java> public interface MyInterface { } </code> <code java Parent.java> public class Parent { } </code> <code java Child.java> public class Child extends Parent implements MyInterface { } </code> <code java InstanceofDemo.java> class InstanceofDemo { public static void main(String[] args) { Parent obj1 = new Parent(); Parent obj2 = new Child(); System.out.println("obj1 instanceof Parent: " + (obj1 instanceof Parent)); System.out.println("obj1 instanceof Child: " + (obj1 instanceof Child)); System.out.println("obj1 instanceof MyInterface: " + (obj1 instanceof MyInterface)); System.out.println("obj2 instanceof Parent: " + (obj2 instanceof Parent)); System.out.println("obj2 instanceof Child: " + (obj2 instanceof Child)); System.out.println("obj2 instanceof MyInterface: " + (obj2 instanceof MyInterface)); } } </code> ===== Δυαδικοί τελεστές και τελεστές ολίσθησης ===== ^ τελεστής ^ επεξήγηση ^ | ~ | bitwise complement operator | | %%<<%% | **τελεστής ολίσθησης στα αριστερά** To LSbit γίνεται 1. | | %%>>%% | **τελεστής ολίσθησης στα δεξιά** Το νέο MSBit γίνεται όσο ήταν το MSBit πριν την ολίσθηση. | | & | δυαδικό AND | | %%|%% | δυαδικό OR | | %%^%% | δυαδικό αποκλειστικό OR (exclusive OR) | <code java BitDemo.java> class BitDemo { public static void main(String[] args) { int bitmask = 0x000F; int val = 0x2222; // prints "2" 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> | Προηγούμενο: [[:java:arrays | Πίνακες ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:control_flow | Έλεγχος ροής προγράμματος ]] |

java/operators.1456485334.txt.gz · Last modified: 2017/02/10 18:20 (external edit)